在这个正则表达式的开头,像“^”或“\ A”这样的锚是否有任何意义 - 任何差异?
$string =~/(.*)([a-z])$/
答案 0 :(得分:5)
是的,如果在字母前面的任何地方有换行符,^或\ A将导致正则表达式不匹配,因为.*
(除了换行符之外的任何字符中的零个或多个)将不再匹配结束前的信。
没有开始锚点,正则表达式将匹配从最后一个换行符到字符串结尾之后(或者通过结尾处换行符之前的字母,如果有换行符)。
答案 1 :(得分:1)
不,因为正则表达式匹配的贪婪性质,正则表达式将在字符串的最后一个字母之前拉出所有内容,前提是最后一个字符是一个字母。
这是有道理的,只是没有任何区别。