У меня есть регулярное выражение, как это:Perl регулярное выражение объяснение
s/<(?:[^>'"]|(['"]).?\1)*>//gs
, и я не знаю, что именно это означает.
У меня есть регулярное выражение, как это:Perl регулярное выражение объяснение
s/<(?:[^>'"]|(['"]).?\1)*>//gs
, и я не знаю, что именно это означает.
Регулярное выражение предназначено для удаления тегов HTML из ввода.
Это соответствует текст, начинающийся с <
и заканчивая >
, содержащий Непро- >
/не кавычки или строки в кавычках (которые могут содержать >
). Но, похоже, эта ошибка:
.?
говорит, что цитаты могут содержать 0 или 1 символ; вероятно, он должен был быть .*?
(0 или более символов). И чтобы предотвратить откат от таких действий, как то, что .
соответствует котировке в некоторых нечетных случаях, необходимо, чтобы группа (?: ...)
была притяжательной (>
вместо :
).
Этот инструмент может объяснить детали: http://rick.measham.id.au/paste/explain.pl?regex=%3C%28%3F%3A[^%3E%27%22]|%28[%27%22]%29.%3F\1%29*%3E
NODE EXPLANATION
--------------------------------------------------------------------------------
< '<'
--------------------------------------------------------------------------------
(?: group, but do not capture (0 or more times
(matching the most amount possible)):
--------------------------------------------------------------------------------
[^>'"] any character except: '>', ''', '"'
--------------------------------------------------------------------------------
| OR
--------------------------------------------------------------------------------
( group and capture to \1:
--------------------------------------------------------------------------------
['"] any character of: ''', '"'
--------------------------------------------------------------------------------
) end of \1
--------------------------------------------------------------------------------
.? any character except \n (optional
(matching the most amount possible))
--------------------------------------------------------------------------------
\1 what was matched by capture \1
--------------------------------------------------------------------------------
)* end of grouping
--------------------------------------------------------------------------------
> '>'
Так он пытается удалить HTML-теги, как ysth также упоминает.
, что URL-адрес не работает – rbm
Похоже, что служба нарушена. В любом случае результат в ответе. –
Если вы введете регулярное выражение в http://gskinner.com/RegExr/ и наведите указатель мыши на каждую часть, это объяснит это всплывающей подсказкой. – Barmar
какая часть (ы) в частности вы не понимаете? это помогает понять, что объяснить – ysth
Я думаю, что общая цель этой строки - удалить все теги HTML из ввода. – Barmar