2010-10-29 5 views
1

Может ли какой-либо смысл иметь якорь типа «^» или «\ A» в начале этого регулярного выражения?Regex anchor question

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

ответ

5

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

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

+0

Нет, это не сработает, если в строке есть строка * в любом месте * при условии, что это где-нибудь в конце. – tchrist

+0

@tchrist: thanks – ysth

1

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

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