ฉันแนะนำให้บุ๊กมาร์กการอ้างอิงด่วนของ MSDN ปกติ
คุณต้องการบรรลุการจับคู่แบบตัวพิมพ์เล็กและตัวพิมพ์เล็กสำหรับคำว่า "จรวด" ที่ล้อมรอบด้วยอักขระที่ไม่ใช่ตัวอักษรและตัวเลข regex ที่ใช้งานได้จะเป็น:
\W*((?i)rocket(?-i))\W*
สิ่งที่จะทำคือมองหาอักขระศูนย์หรือมากกว่า (*) ที่ไม่ใช่ตัวอักษรและตัวอักษร (\ W) ตามด้วยจรวดที่ไม่มีตัวพิมพ์เล็กและใหญ่ (? i) จรวด (? - i) และตามด้วยอีกศูนย์หรือมากกว่า *) อักขระที่ไม่ใช่ตัวอักษรและตัวเลข (\ W) เครื่องหมายวงเล็บพิเศษรอบคำที่มีการจับคู่จรวดกำหนดการจับคู่ให้กับกลุ่มแยกต่างหาก จรวดคำจะอยู่ในกลุ่มการแข่งขัน 1
UPDATE 1:
Matt กล่าวในความคิดเห็นว่า regex นี้จะใช้ในหลาม Python มีไวยากรณ์ที่แตกต่างกันเล็กน้อย เพื่อให้ได้ผลลัพธ์เดียวกันใน python ให้ใช้ regex นี้และส่งผ่านre.IGNORECASE
ตัวเลือกไปยังcompile
หรือmatch
ฟังก์ชัน
\W*(rocket)\W*
ในRegex101สามารถจำลองได้โดยป้อน "i" ในกล่องข้อความถัดจากอินพุต regex
อัปเดต 2 Ismael ได้กล่าวไว้ว่า regex นั้นค่อนข้างไม่ถูกต้องเนื่องจากอาจตรงกับ "1rocket1" เขาโพสต์ทางออกที่ดีกว่ามากคือ
(?:^|\W)rocket(?:$|\W)