ฉันได้เห็นตัวอย่างมากมายของการทำให้นิพจน์ทั่วไปไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ สิ่งที่ฉันสงสัยคือมีเพียงส่วนหนึ่งของนิพจน์ที่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่
ตัวอย่างเช่นสมมติว่าฉันมีสตริงดังนี้:
fooFOOfOoFoOBARBARbarbarbAr
จะเกิดอะไรขึ้นหากฉันต้องการจับคู่ "foo" ที่เกิดขึ้นทั้งหมดไม่ว่าจะเป็นกรณีใด แต่ฉันต้องการจับคู่ "BAR" ตัวพิมพ์ใหญ่เท่านั้น
ทางออกที่ดีคือสิ่งที่ใช้ได้กับรสชาติ regex แต่ฉันสนใจที่จะฟังภาษาที่เฉพาะเจาะจงเช่นกัน (ขอบคุณEspo )
แก้ไข
ลิงค์ที่ Espo ให้มานั้นมีประโยชน์มาก มีตัวอย่างที่ดีเกี่ยวกับการเปิดและปิดตัวปรับแต่งภายในนิพจน์
สำหรับตัวอย่างที่สร้างขึ้นของฉันฉันสามารถทำสิ่งนี้ได้:
(?i)foo*(?-i)|BAR
ซึ่งทำให้การจับคู่ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่สำหรับเฉพาะส่วน foo ของการจับคู่
ดูเหมือนว่าจะใช้ได้กับการใช้งาน regex ส่วนใหญ่ยกเว้น Javascript, Python และอื่น ๆ อีกสองสามอย่าง (ตามที่ Espo กล่าวถึง)
เรื่องใหญ่ที่ฉันสงสัยเกี่ยวกับ (Perl, PHP, .NET) รองรับการเปลี่ยนแปลงโหมดอินไลน์ทั้งหมด