java - 正则表达式中的 ^ 和 $ 是什么意思?

标签 java regex

"\\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/

相关文章:

java - 如何从 64 位 Java 连接到 Access .mdb 数据库?

java - java 重载的奇怪行为

regex - 我可以在方法中更改 Perl 6 俚语吗?

java - 在 Java 中使用 Scanner.useDelimeter() 来隔离表达式中的标记

java - 替换不在字符串中的单词

Java 几乎像 HTML 渲染器一样减少空格

java - 生成给定大小的字符串

java - 需要帮助验证 URL 中的 PDF 是否存在

java - 使用正则表达式去除所有出现的地方

regex - IIS-URL 重写,URL 规则为小写,除了查询字符串