ค้นหาเว็บไซต์

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()

บทความที่เกี่ยวข้อง