Regex якорный вопрос - PullRequest
       2

Regex якорный вопрос

1 голос
/ 29 октября 2010

Будет ли такой якорь, как "^" или "\ A" в начале этого регулярного выражения, иметь какое-либо значение?

$string =~/(.*)([a-z])$/

Ответы [ 2 ]

5 голосов
/ 29 октября 2010

Да, либо ^, либо \ A приведут к тому, что регулярное выражение не будет совпадать, если где-либо перед буквой есть новая строка, потому что .* (ноль или более любых символов, кроме новой строки) больше не будет совпадать с предыдущей буквой. конец.

Без начального якоря регулярное выражение будет соответствовать после последней новой строки до конца строки (или через букву перед новой строкой в ​​конце, если есть новая строка).

1 голос
/ 29 октября 2010

Нет, из-за жадной природы сопоставления регулярных выражений это регулярное выражение будет вытягивать все до последней буквы строки, при условии, что последний символ является буквой.

Это имело бы смысл, просто без разницы.

...