$ string = "Aa Aa 122";Что выполняет функция границы слова в perl
/\b[A-Z][a-z]*\b/
\ Ь \ Ь => это поиск дубликатов Aa Aa или она ищет, что не в []?
и что делает followin регулярное выражение делать,
/(.).*\1/
$ string = "Aa Aa 122";Что выполняет функция границы слова в perl
/\b[A-Z][a-z]*\b/
\ Ь \ Ь => это поиск дубликатов Aa Aa или она ищет, что не в []?
и что делает followin регулярное выражение делать,
/(.).*\1/
\b
соответствует границе слова. Таким образом, регулярное выражение соответствует «Aa», но не «AaB», потому что между «a» и «B» во второй строке нет границы слова; то есть они являются частью одного и того же слова.
См. Perl doc on zero-width assertions.
Вторая соответствует строке, содержащей два одинаковых символа в любом месте. Это работает, потому что \1
соответствует любому персонажу, который соответствует (.)
, который соответствует любому одиночному символу (.
) и запоминает его как \1
(это (
... )
). Значение .*
означает, что между ними может быть что угодно («ноль или больше символов»).
Таким образом, «Абра» спички (\1
является «а»), как это делает «сумматор» (\1
это «d», и .*
соответствует нулю символов), но не «черный».
Регулярное выражение /\b[A-Z][a-z]*\b/
выполняет поиск заглавных букв, содержащих только буквенные символы ASCII. Примеры:
Foo B Ba Bar
, но не
bAr FOO foo BAR Føø BäÞ b
\b
является нулевой шириной утверждения, что соответствует только границ слов, где «символ слова» \w
и не-символ слова является смежными , Это эквивалентно просмотровые обходные
(?<!\w)(?=\w)|(?<=\w)(?!\w)
\1
является backref захваченной группы, и соответствует буквальному содержанию этой группы. Это регулярное выражение позволяет нам соответствовать строке foo
цитируемый либо двойные или одинарные кавычки:
/(["'])foo\1/ # "foo" and 'foo' but not "foo' or 'foo"
Это соответствует либо двойные или одинарные кавычки и запоминает. После foo именно этот символ должен появиться снова. Ваше регулярное выражение является более общей формой, где foo
может быть чем угодно, а символом цитирования может быть что угодно. Это находит первую длинную строку, не связанную с новой строкой, которая заключена в символ, например. в
:"':foo':"
:"':foo':
это соответствует, поскольку она является самой длинной строки, например на первой позиции.
Регулярное выражение соответствует 'Aab' из-за' [a-z] * ' – Toto
Спасибо, @ M42. Исправлена. –