"\\w+@\\w+[.]\\w+"
和 "^\\w+@\\w+[.]\\w+$ 有什么区别“
?我试图用谷歌搜索它,但没有成功。
最佳答案
^
表示“匹配字符串的开头”(更准确地说,是字符串中第一个字符之前的位置,因此它不匹配实际字符) .
$
表示“匹配字符串的结尾”(字符串中最后一个字符之后的位置)。
两者都称为 anchors并确保匹配整个字符串,而不仅仅是一个子字符串。
因此,在您的示例中,第一个正则表达式将在 email@address.com.uk
上报告匹配项,但匹配的文本将为 email@address.com
,可能不是你所期望的。第二个正则表达式将简单地失败。
请小心,因为一些正则表达式实现隐式地将正则表达式锚定在字符串的开头/结尾(例如 Java 的 .matches()
,如果您正在使用它的话)。
如果设置了多行选项(例如,使用 (?m)
标志,或通过执行 Pattern.compile("^\\w+@\\w+[.]\\w+$", Pattern.MULTILINE)
),然后 ^
和 $
也匹配 行.
关于java - 正则表达式中的 ^ 和 $ 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6908725/