正则表达式锚定问题

时间:2010-10-29 05:40:54

标签: regex perl anchor

在这个正则表达式的开头,像“^”或“\ A”这样的锚是否有任何意义 - 任何差异?

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

2 个答案:

答案 0 :(得分:5)

是的,如果在字母前面的任何地方有换行符,^或\ A将导致正则表达式不匹配,因为.*(除了换行符之外的任何字符中的零个或多个)将不再匹配结束前的信。

没有开始锚点,正则表达式将匹配从最后一个换行符到字符串结尾之后(或者通过结尾处换行符之前的字母,如果有换行符)。

答案 1 :(得分:1)

不,因为正则表达式匹配的贪婪性质,正则表达式将在字符串的最后一个字母之前拉出所有内容,前提是最后一个字符是一个字母。

这是有道理的,只是没有任何区别。