регулярное выражение, которое игнорирует регистр первого символа - PullRequest
0 голосов
/ 25 апреля 2010

Я знаю, что регулярные выражения JavaScript могут игнорировать регистр для всего совпадения, но как насчет только первого символа? Тогда Hello World! будет соответствовать Hello World! , но не Hello World! .

Ответы [ 5 ]

3 голосов
/ 25 апреля 2010

Вы имеете в виду, как /[Tt]uesday/

[Tt] создает набор, что означает, что 'T' или 't' могут соответствовать этому первому символу.

2 голосов
/ 25 апреля 2010

Сделай это по-другому. Заставьте первый символ вашей строки данных в нижнем регистре, прежде чем сопоставить его с вашим регулярным выражением. Вот как это делается в ActionScript, JavaScript должен быть похожим:

var input="Hello World!";
var regex=/hello World!/;
var input2 = input.substr(0, 1).toLowerCase() + input.substr(1);
trace(input2.match(regex));
2 голосов
/ 25 апреля 2010

Ваш вопрос на самом деле не имеет смысла.После редактирования теперь написано: «Я после общего регулярного выражения, которое можно применить ко всем словам».Регулярное выражение для совпадения всех слов и знаков препинания будет ". *"

Что вы пытаетесь сопоставить?Можете ли вы привести примеры того, что должно совпадать, а что не должно совпадать?

2 голосов
/ 25 апреля 2010
[a-zA-Z]{1}[a-z]
1 голос
/ 25 апреля 2010

regular-expressions.info

  • Классы символов или наборы символов

    С помощью «класса символов», также называемого «набор символов», вы можете указать обработчику регулярных выражений, что он соответствует только одному из нескольких символов. Просто поместите символы, которые вы хотите сопоставить, в квадратных скобках. Если вы хотите соответствовать a или e, используйте [ae]. Вы можете использовать это в gr[ae]y для соответствия gray или grey.


Таким образом, регулярное выражение, которое соответствует Tuesday и tuesday, и ничего больше, равно [Tt]uesday.


Если вам дано произвольное слово w и тема s, которая должна соответствовать w, за исключением того, что первая буква нечувствительна к регистру, тогда вам не нужны регулярные выражения. Просто убедитесь, что первая буква w и s является одной и той же буквой, игнорируя регистр, затем убедитесь, что подстрока w и s из индекса 1 точно соответствует.

На Java это будет выглядеть примерно так:

boolean equalsFirstLetterIgnoreCase(String s, String w) {
   return s.substring(0, 1).toLowerCase().equals(w.substring(0, 1).toLowerCase())
     && s.substring(1).equals(w.substring(1));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...