PowerShell:
การลบเครื่องหมายอัญประกาศออกจากสตริง
วิธีการ:
คุณสามารถใช้ตัวดำเนินการ -replace
เพื่อลบอัญประกาศจากสตริง นี่คือวิธีการ:
# แทนที่อัญประกาศเดี่ยว
$stringWithSingleQuotes = "'สวัสดี, โลก!'"
$cleanString = $stringWithSingleQuotes -replace "'", ""
Write-Output $cleanString # ผลลัพธ์: สวัสดี, โลก!
# แทนที่อัญประกาศคู่
$stringWithDoubleQuotes = '"สวัสดี, โลก!"'
$cleanString = $stringWithDoubleQuotes -replace '"', ""
Write-Output $cleanString # ผลลัพธ์: สวัสดี, โลก!
สำหรับทั้งสองประเภท:
$stringWithQuotes = '"สวัสดี," เธอพูด.'
$cleanString = $stringWithQuotes -replace "[\"']", "" # โปรดสังเกตการใช้คลาสอักขระ regex
Write-Output $cleanString # ผลลัพธ์: สวัสดี, เธอพูด.
ตัวอย่างผลลัพธ์จากคอนโซลจะปรากฏออกมาประมาณนี้:
สวัสดี, โลก!
สวัสดี, โลก!
สวัสดี, เธอพูด.
การดำดิ่งลึก
ในอดีต, ก่อนที่ PowerShell จะเป็นจุดสนใจของ Microsoft, การประมวลผลข้อความใน Windows มักเป็นขอบเขตของแบทช์สคริปต์ที่มีความสามารถจำกัด PowerShell นำเสนอมาพร้อมกับคุณสมบัติการจัดการสตริงที่ทรงพลังทำให้สคริปต์มีความเข้มแข็งมากขึ้น
มีตัวเลือกอื่นนอกจากการใช้ -replace
, เช่น การใช้เมธอด .Trim()
เพื่อลบอัญประกาศที่อยู่ต้นและท้ายของสตริง แต่วิธีเหล่านั้นไม่ได้ให้การควบคุมหรือรองรับ regex เท่ากับการใช้ -replace
# การใช้ .Trim() สำหรับอัญประกาศที่ต้นและท้าย
$stringWithQuotes = '"สวัสดี, โลก!"'
$cleanString = $stringWithQuotes.Trim('"')
Write-Output $cleanString # ผลลัพธ์: สวัสดี, โลก!
โปรดทราบ -replace
ใช้ regex อยู่เบื้องหลัง ดังนั้นเมื่อคุณทำงานกับมัน คุณต้องจำไว้ว่าอักขระพิเศษต้องถูกหลบหนีถ้าคุณต้องการเจาะจงพวกมัน หากคุณต้องการควบคุมการลบอัญประกาศด้วยความละเอียดมากขึ้น การดิ่งลึกเข้าไปใน regex ด้วย -replace
เป็นทางเลือกที่ดี ทำให้คุณมีความยืดหยุ่นอย่างมาก
ดูเพิ่มเติม
- สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ regex ใน PowerShell, ตรวจสอบเอกสารอย่างเป็นทางการ: about_Regular_Expressions
- ค้นพบเมธอดสตริงอื่นๆ: Trim(), TrimStart(), TrimEnd()