2012-05-01 42 views
6

Tôi có biến Perl, $word. Tôi muốn làm một regex như thế này:Kết hợp các quy tắc trường hợp khác nhau trong một biểu thức chính quy Perl

$text =~ /ab($word)cd/; 

Tôi muốn regex là trường hợp nhạy cảm cho abcd phần, nhưng không cho bất cứ điều gì là trong $word. Vì vậy, nếu $word='stack', tôi muốn cả hai để phù hợp:

abstackcd 
abStAcKcd 

vv, nhưng tôi không muốn để phù hợp với

Abstackcd 

Tôi đoán tôi đang tìm một số cách để áp dụng /i chỉ để $word nhưng không phải phần còn lại của biểu thức. Điều này có thể được thực hiện?

Trả lời

15

Có, sử dụng (?i:$word). Xem phần "Extended Patterns" of perldoc perlre. Bạn có thể thực sự muốn (?i:\Q$word\E), nhân tiện, điều này sẽ tự động trích dẫn bất kỳ metacharacters regex nào trong số $word.

+0

+1 để biết hướng dẫn về cách chuyển đổi chuỗi thành mẫu. – ikegami

+0

Câu trả lời hay, cảm ơn! – itzy

Các vấn đề liên quan