Матч заглавные буквы и маленькие буквы по RegExp

Я написал некоторые RegExp pattren, как это:

SomeText

но я хочу, чтобы шаблон в соответствии с :

Sometext
sOMeTeXt
SOMETEXT
SoMEteXt

нечто подобное !

на самом деле я хочу использовать этот

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

что делать ?

4 ответов


во многих реализациях регулярных выражений вы можете указать модификаторы это относится к данной части вашего шаблона. Нечувствительность к регистру является одним из таких модификаторов:

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

на участке между (?i) и (?-i) будет помещен в режим без учета регистра. Согласно эта сравнительная таблица, это поддерживается, если вы используете .net, Java, Perl, PCRE, Ruby или движок JGsoft.

конечно, так как вы указываете оба a-z и A-Z в ваших классах символов вы можете упростить и использовать модификатор без учета регистра для всего шаблона:

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

использовать модификатор игнорировать регистр

/sometext/i

Если вы не можете использовать модификаторы:

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

Javascript: работает как с большой буквы, так и с маленькой буквы в любом порядке.

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