Member 14105304 Ответов: 2

Регулярное выражение, почему результат получается следующим? - Джей Си


let text = "titanic";
let myRegex = /t[a-z]*i/; // Change this line
let result = text.match(myRegex); //gives "titani" -- why?


Что я уже пробовал:

ищу объяснения '/t'.

2 Ответов

Рейтинг:
2

Patrice T

Всего лишь несколько интересных ссылок, которые помогут построить и отладить регулярное выражение.
Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
RegExr: Learn, Build, & Test RegEx[^]
Онлайн-тестер регулярных выражений и отладчик: PHP, PCRE, Python, Golang и JavaScript[^]
Этот пример показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение: Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]
Этот сайт также показывает регулярное выражение в красивом графике, но не может проверить, что соответствует регулярному выражению: Regexper[^]


Рейтинг:
1

OriginalGriff

Потому что он совпадает.
"*"- это "ноль или больше", поэтому "ти" соответствует, но и "титани"тоже.
Если вам нужно самое короткое совпадение, вы должны сказать регулярному выражению, что:

/t[a-z]*?i/


Member 14105304

я имею в виду, почему он не отдал "Титаник", с входит между А-я..?

OriginalGriff

Потому что ваше выражение соответствия заканчивается на "i", а не на "c".
Регулярное выражение - это система сопоставления с образцом, и ваше выражение говорит: "сопоставьте все, что начинается с буквы"т", следует за моим нулем или более любого алфавитного символа и заканчивается буквой " Я "- игнорируйте все, что после этого".

Идти сюда:
http://www.ultrapico.com/Expresso.htm
и получите копию Expresso - это бесплатно, и он проверяет, генерирует и тестирует регулярные выражения. Он также пытается объяснить их на "почти английском языке", если вы введете один из них. Если вы собираетесь играть с регулярными выражениями, это просто находка!

Member 14105304

о-о-О ... это начинается с " т " до "Я", Я думал, что я-это флаг..
попался! спасибо большое! =]

OriginalGriff

Всегда пожалуйста!