PowerShell: วิธีแยกสตริงย่อยก่อนอักขระเฉพาะ
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อแยกสตริงย่อยก่อนอักขระเฉพาะใน PowerShell:
$findchar = $my_string.IndexOf(" ")
$substring_before = $my_string.Substring(0, $findchar)
ตัวอย่างนี้จะแยกสตริงย่อยที่เก็บไว้ในตัวแปรชื่อ $my_string ที่เกิดขึ้นก่อนช่องว่าง
สตริงย่อยที่ได้จะถูกจัดเก็บไว้ในตัวแปรชื่อ $substring_before
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: วิธีแยกสตริงย่อยก่อนอักขระเฉพาะใน PowerShell
สมมติว่าเรามีสตริงต่อไปนี้ที่ใช้เป็นรหัสพนักงาน:
00343HAAD Matthew
และสมมติว่าเราต้องการแยกเฉพาะข้อความก่อนช่องว่างในรหัสพนักงานเพื่อรับสตริงย่อยต่อไปนี้:
00343HAAD เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อดำเนินการดังกล่าว:
$my_string = "00343HAAD Matthew"
$findchar = $my_string.IndexOf(" ")
$substring_before = $my_string.Substring(0, $findchar)
ภาพหน้าจอต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ:
โปรดสังเกตว่าสิ่งนี้จะส่งกลับ 00343HAAD ซึ่งแสดงถึงสตริงย่อยทั้งหมดที่เกิดขึ้นก่อนช่องว่าง
ไวยากรณ์นี้ทำงานอย่างไร
จำไวยากรณ์ที่เราใช้ในการแยกสตริงย่อยก่อนช่องว่าง:
$findchar = $my_string.IndexOf(" ")
$substring_before = $my_string.Substring(0, $findchar)ขั้นแรก เราใช้เมธอด IndexOf() เพื่อค้นหาตำแหน่งของช่องว่างในสตริง
ในสตริง 00343HAAD Matthew จะคืนค่าตำแหน่งเป็น 9
ต่อไป เราใช้เมธอด Substring() เพื่อส่งคืนสตริงย่อยระหว่างตำแหน่ง 0 และ 9 ในสตริงดั้งเดิม
สตริงย่อยนี้กลายเป็น 00343HAAD
หมายเหตุ: หากต้องการส่งคืนสตริงย่อยที่เกิดขึ้นก่อนตัวคั่นอื่น เพียงระบุตัวคั่นนั้นในเมธอด IndexOf()
