Регулярное выражение, почему результат получается следующим? - Джей Си
let text = "titanic"; let myRegex = /t[a-z]*i/; // Change this line let result = text.match(myRegex); //gives "titani" -- why?
Что я уже пробовал:
ищу объяснения '/t'.
let text = "titanic"; let myRegex = /t[a-z]*i/; // Change this line let result = text.match(myRegex); //gives "titani" -- why?
Всего лишь несколько интересных ссылок, которые помогут построить и отладить регулярное выражение.
Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
RegExr: Learn, Build, & Test RegEx[^]
Онлайн-тестер регулярных выражений и отладчик: PHP, PCRE, Python, Golang и JavaScript[^]
Этот пример показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение: Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]
Этот сайт также показывает регулярное выражение в красивом графике, но не может проверить, что соответствует регулярному выражению: Regexper[^]
Потому что он совпадает.
"*"- это "ноль или больше", поэтому "ти" соответствует, но и "титани"тоже.
Если вам нужно самое короткое совпадение, вы должны сказать регулярному выражению, что:
/t[a-z]*?i/
я имею в виду, почему он не отдал "Титаник", с входит между А-я..?
Потому что ваше выражение соответствия заканчивается на "i", а не на "c".
Регулярное выражение - это система сопоставления с образцом, и ваше выражение говорит: "сопоставьте все, что начинается с буквы"т", следует за моим нулем или более любого алфавитного символа и заканчивается буквой " Я "- игнорируйте все, что после этого".
Идти сюда:
http://www.ultrapico.com/Expresso.htm
и получите копию Expresso - это бесплатно, и он проверяет, генерирует и тестирует регулярные выражения. Он также пытается объяснить их на "почти английском языке", если вы введете один из них. Если вы собираетесь играть с регулярными выражениями, это просто находка!
о-о-О ... это начинается с " т " до "Я", Я думал, что я-это флаг..
попался! спасибо большое! =]
Всегда пожалуйста!