Следующее регулярное выражение работает, но может ли кто-нибудь объяснить, как? Любые комментарии приветствуются! Спасибо! Лебеда
Что такое регулярное выражение "|" что делать, чтобы удалить теги "" и "" из <script>Keep THIS</Script>
, чтобы получить "Keep THIS"
в памяти $ 1?
Вот РЕГЕКС:
(?x)
([\w\.!?,\s-])|<.*?>|.
Вот строка:
<script>Keep THIS</Script>
Результаты: $ 1 = "Оставить ЭТО"
Комментарии ниже:
(?x) set flags for this block (disregarding
whitespace and comments) (case-sensitive)
(with ^ and $ matching normally) (with .
not matching \n)
( group and capture to \1:
[\w\.!?,\s-] any character of: word characters (a-z,
A-Z, 0-9, _), '\.', '!', '?', ',',
whitespace (\n, \r, \t, \f, and " "), '-
'
) end of \1
| OR
< '<'
.? any character except \n (optional
(matching the most amount possible))
> '>'
| OR
. any character except \n
1 ответ
<.*?>
соответствует всем тегам, то есть соответствует всем строкам, которые начинаются с <
и заканчиваются >
. Затем из оставшейся строки это регулярное выражение ([\w\.!?,\s-])
захватит все символы слова или точки, или !
, или ?
, или пробел, или запятую, или дефис. Обратите внимание, что он захватит каждый отдельный символ в группу 1.
Если вы хотите захватить всю строку Keep THIS
в группу 1, вам нужно добавить квантификатор +
рядом с классом символов. +
повторяет предыдущий токен один или несколько раз.
([\w\.!?,\s-]+)|<.*?>|.
Наконец, .
соответствует всем остальным символам, которые не совпадают.
Похожие вопросы
Новые вопросы
regex
Регулярные выражения предоставляют декларативный язык для сопоставления шаблонов в строках. Они обычно используются для проверки строк, разбора и преобразования. Укажите язык (PHP, Python и т. д.) или инструмент (grep, VS Code, Google Analytics и т. д.), который вы используете. Не размещайте вопросы, требующие объяснения того, что означает символ или чему будет соответствовать конкретное регулярное выражение.