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

จะตรวจสอบว่าสตริงมีช่องว่างใน PowerShell ได้อย่างไร


เมื่อเร็วๆ นี้ ฉันได้รับข้อกำหนดให้ตรวจสอบว่าสตริงมีช่องว่างใน PowerShell หรือไม่ มีวิธีการที่แตกต่างกันในการทำเช่นนั้น ในบทช่วยสอนนี้ ฉันจะแสดงวิธีตรวจสอบว่าสตริงมีการเว้นวรรคใน PowerShell หรือไม่ พร้อมตัวอย่าง

ในการตรวจสอบว่าสตริงมีการเว้นวรรคใน PowerShell หรือไม่ คุณสามารถใช้ตัวดำเนินการ -match กับรูปแบบนิพจน์ทั่วไป \s ซึ่งตรงกับอักขระช่องว่างใดๆ ตัวอย่างเช่น หากคุณมีสตริง $username="John Doe" คุณสามารถใช้เงื่อนไข if ($username -match "\s") เพื่อพิจารณาว่า มีช่องว่าง

ตรวจสอบว่าสตริงมีช่องว่างใน PowerShell หรือไม่

PowerShell ใช้วิธีการต่างๆ เพื่อตรวจสอบว่าสตริงมีช่องว่างหรือไม่ ฉันขอแสดงวิธีการทั้งหมดพร้อมตัวอย่างให้คุณดู

วิธีที่ 1: การใช้ตัวดำเนินการ -match

ตัวดำเนินการ -match ใน PowerShell ใช้นิพจน์ทั่วไปเพื่อจับคู่รูปแบบในสตริง หากต้องการตรวจสอบว่าสตริงมีการเว้นวรรคหรือไม่ คุณสามารถใช้รูปแบบ regex \s ซึ่งตรงกับอักขระช่องว่างใดๆ รวมถึงการเว้นวรรคด้วย

ฉันขอแสดงตัวอย่างให้คุณดู

ตัวอย่าง: การตรวจสอบความถูกต้องของชื่อผู้ใช้

สมมติว่าคุณกำลังเขียนสคริปต์เพื่อตรวจสอบความถูกต้องของชื่อผู้ใช้ และต้องการให้แน่ใจว่าชื่อผู้ใช้ไม่มีการเว้นวรรค

$username = "John Doe"

if ($username -match "\s") {
    Write-Output "The username contains a space."
} else {
    Write-Output "The username is valid."
}

ในตัวอย่างนี้ สคริปต์จะตรวจสอบว่าตัวแปร $username มีช่องว่างหรือไม่และแสดงข้อความตามนั้น

ผลลัพธ์ที่แน่นอนอยู่ในภาพหน้าจอด้านล่าง หลังจากที่ฉันรันสคริปต์ PowerShell โดยใช้รหัส VS

ตรวจสอบว่าสตริงมีเฉพาะตัวเลขใน PowerShell หรือไม่

วิธีที่ 2: การใช้วิธีมี()

วิธี Contains เป็นอีกวิธีหนึ่งในการตรวจสอบว่าสตริงมีสตริงย่อยเฉพาะหรือไม่ รวมถึงช่องว่างใน PowerShell อย่างไรก็ตาม จะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่และไม่รองรับนิพจน์ทั่วไป

ตัวอย่าง: การประมวลผลเส้นทางของไฟล์

ลองนึกภาพการประมวลผลรายการเส้นทางของไฟล์และจำเป็นต้องระบุเส้นทางที่มีช่องว่าง

$filePath = "C:\Program Files\MyApp\config.txt"

if ($filePath.Contains(" ")) {
    Write-Output "The file path contains a space."
} else {
    Write-Output "The file path does not contain a space."
}

ตัวอย่างนี้จะตรวจสอบว่าตัวแปร $filePath มีช่องว่างและแสดงข้อความตามนั้นหรือไม่

นี่คือผลลัพธ์ในภาพหน้าจอด้านล่าง:

วิธีที่ 3: การใช้ตัวดำเนินการ -like

ตัวดำเนินการ -like ใน PowerShell รองรับการจับคู่รูปแบบไวด์การ์ด หากต้องการตรวจสอบช่องว่าง คุณสามารถใช้ไวด์การ์ด * เพื่อจับคู่ลำดับอักขระใดก็ได้

ตัวอย่าง: การกรองรายการบันทึก

สมมติว่าคุณมีไฟล์บันทึกและต้องการกรองรายการที่มีช่องว่าง

$logEntry = "Error: Disk space low"

if ($logEntry -like "* *") {
    Write-Output "The log entry contains a space."
} else {
    Write-Output "The log entry does not contain a space."
}

ในตัวอย่างนี้ สคริปต์จะตรวจสอบว่าตัวแปร $logEntry มีช่องว่างหรือไม่และแสดงข้อความตามนั้น

ตรวจสอบ PowerShell - มีตัวดำเนินการ

วิธีที่ 4: การใช้วิธีแยก()

สามารถใช้วิธี Split เพื่อแยกสตริงออกเป็นอาร์เรย์โดยยึดตามตัวคั่นใน PowerShell ด้วยการแบ่งสตริงตามช่องว่าง คุณสามารถระบุได้ว่าสตริงต้นฉบับมีช่องว่างหรือไม่

นี่คือตัวอย่างจริง

ตัวอย่าง: การแยกวิเคราะห์ข้อมูล CSV

พิจารณาสถานการณ์ที่คุณกำลังแยกวิเคราะห์ข้อมูล CSV และจำเป็นต้องตรวจสอบว่าช่องใดมีช่องว่างหรือไม่ นี่คือสคริปต์ PowerShell ที่สมบูรณ์

$csvField = "John,Doe,35,New York"

$fields = $csvField.Split(",")

foreach ($field in $fields) {
    if ($field -match "\s") {
        Write-Output "The field '$field' contains a space."
    } else {
        Write-Output "The field '$field' does not contain a space."
    }
}

ตัวอย่างนี้แยกตัวแปร $csvField ออกเป็นอาร์เรย์ของช่องและตรวจสอบแต่ละช่องว่ามีช่องว่างหรือไม่

นี่คือผลลัพธ์ในภาพหน้าจอด้านล่าง:

ตรวจสอบว่าสตริงมีสตริงย่อยใน PowerShell หรือไม่

วิธีที่ 5: การใช้วิธี IndexOf()

วิธีการ IndexOf ส่งกลับดัชนีศูนย์ของการเกิดขึ้นครั้งแรกของอักขระที่ระบุในสตริง หากไม่พบอักขระ ก็จะส่งกลับ -1 นี่เป็นอีกวิธีในการตรวจสอบว่าสตริงมีช่องว่างใน PowerShell หรือไม่

ตัวอย่าง: การตรวจสอบความถูกต้องของที่อยู่อีเมล

สมมติว่าคุณตรวจสอบที่อยู่อีเมลและต้องการให้แน่ใจว่าที่อยู่อีเมลไม่มีการเว้นวรรค

$email = "john.doe@example.com"

if ($email.IndexOf(" ") -ne -1) {
    Write-Output "The email address contains a space."
} else {
    Write-Output "The email address is valid."
}

ในตัวอย่างนี้ สคริปต์จะตรวจสอบว่าตัวแปร $email มีช่องว่างหรือไม่และแสดงข้อความตามนั้น

คุณสามารถดูผลลัพธ์ที่แน่นอนได้ในภาพหน้าจอด้านล่าง:

บทสรุป

ในบทช่วยสอนนี้ ฉันอธิบายวิธีตรวจสอบว่าสตริงมีช่องว่างใน PowerShell หรือไม่ โดยใช้วิธีต่างๆ เช่น:

  • การใช้ตัวดำเนินการ -match
  • การใช้เมธอดมี()
  • การใช้ตัวดำเนินการ -like
  • ใช้วิธีแยก()
  • ใช้เมธอด IndexOf()

ฉันได้อธิบายตัวอย่างจริงบางส่วนเกี่ยวกับเรื่องนี้แล้ว และหวังว่าบทช่วยสอนนี้จะช่วยคุณได้

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