Совпадение заглавных и строчных букв от RegExp - PullRequest
6 голосов
/ 03 октября 2010

Я написал несколько паттернов RegExp, таких как:

SomeText

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

Sometext
sOMeTeXt
SOMETEXT
SoMEteXt

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

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

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

что мне делать?

Ответы [ 4 ]

7 голосов
/ 03 октября 2010

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

[Ss][Oo][Mm][Ee][Tt][Ee][Xx][Tt]
6 голосов
/ 03 октября 2010

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

\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
6 голосов
/ 03 октября 2010

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

/sometext/i
1 голос
/ 29 марта 2016

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

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