2010-10-03 10 views
5

tôi đã viết một số pattren RegExp như thế này:trận đấu, chữ nhỏ bởi RegExp

SomeText 

Nhưng tôi muốn pattren để phù hợp với:

Sometext 
sOMeTeXt 
SOMETEXT 
SoMEteXt 

Somethings như thế!

Trong thực tế, tôi muốn sử dụng này

\s?[^a-zA-Z0-9\_]SomeText[^a-zA-Z0-9\_] 

những gì tôi nên làm gì?

+1

Bạn sử dụng ngôn ngữ/biểu thức chính quy nào? – Gumbo

Trả lời

5

Trong việc triển khai nhiều regex, bạn có thể chỉ định modifiers áp dụng cho một phần nhất định của mô hình của bạn. Case-vô cảm là một trong những sửa đổi đó:

\s?[^a-zA-Z0-9\_](?i)sometext(?-i)[^a-zA-Z0-9\_] 

Phần giữa (?i)(?-i) sẽ được đưa vào chế độ case-insensitive. Theo this comparison table, điều này được hỗ trợ nếu bạn đang sử dụng .net, Java, Perl, PCRE, Ruby hoặc công cụ JGsoft.

Tất nhiên, kể từ khi bạn đang xác định cả hai a-zA-Z trong các lớp nhân vật của bạn, bạn có thể đơn giản hóa và sử dụng modifier case-insensitive trên toàn bộ mẫu:

/\s?[^a-z0-9\_]sometext[^a-z0-9\_]/i 
+0

Amazing .. Cảm ơn bạn rất nhiều –

7

sử dụng bỏ qua trường hợp sửa đổi

/sometext/i 
+0

Cảm ơn .. Câu trả lời này không phù hợp với tôi –

7

Trong trường hợp bạn không thể sử dụng từ bổ nghĩa:

[Ss][Oo][Mm][Ee][Tt][Ee][Xx][Tt] 
+0

Ý tưởng hay. thanks –

0

Javascript: Làm việc cả vốn và nhỏ thư theo bất kỳ thứ tự nào.

value.match(new RegExp(searchkey, "i"))