Regex จับคู่หนึ่งในสองคำ


301

ฉันมีการป้อนข้อมูลที่สามารถมีเพียง 2 ค่าหรือapple bananaฉันสามารถใช้นิพจน์ทั่วไปใดเพื่อให้แน่ใจว่าได้ส่งคำใดคำหนึ่งในสองคำ


2
regex นี้กำลังใช้ภาษา / สภาพแวดล้อมใด? Regex ดูเหมือนว่าค่าใช้จ่ายที่ไม่จำเป็นในหลาย ๆ สถานการณ์
mickmackusa

คำตอบ:


467

สิ่งนี้จะทำ:

/^(apple|banana)$/

การยกเว้นจากสตริงจับ (เช่น$1, $2):

(?:apple|banana)

43
สำหรับบางคนการใช้สิ่งนี้เป็นกลุ่มที่ไม่ได้ดักจับจะมีประโยชน์ การใช้(?:apple|banna)จะตรงกับอย่างใดอย่างหนึ่ง แต่จะไม่เพิ่มไปยังรายการของสตริงจับ (เช่น$1, $2.. $N)
doub1ejack

สวัสดีคำถามด่วนฉันควรทำอย่างไรหากฉันไม่ต้องการให้ applebanana ตรงกัน
Grover Reyes

regex ด้านบนจับคู่แอปเปิลกับกล้วย แต่ไม่ตรงกับ applebanana
phlogratos

99

มีเอนจิ้น regex แตกต่างกัน แต่ฉันคิดว่าส่วนใหญ่จะทำงานกับสิ่งนี้:

apple|banana

55
หากคุณวางแผนที่จะนำอื่น ๆ ใน regex (apple|banana)ของคุณคุณจะต้องใส่วงเล็บคำพูดของคุณเช่นนี้
Brian J

แต่จะทำอย่างไรให้รู้สึกตัวเล็ก
Nitish

นั่นคือชุดที่มีre.IGNORECASEธง เช่น:re.compile("(apple|banana)", re.IGNORECASE)
Troels Ynddal

-8

นิพจน์ทั่วไป/.txt|.tif/สามารถใช้บน SiteScope เพื่อค้นหา 'ชื่อไฟล์ที่ตรงกัน' สำหรับการตรวจสอบไดเรกทอรีเมื่อค้นหาไฟล์ประเภทต่าง ๆ สองไฟล์ที่ลงท้ายด้วย. txt หรือ. tif

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.