5

有人可以向我解释和的含义\\A\\z?我假设它们在这个正则表达式中具有特殊含义,因为它们正在被转义(但我可能是错的,它们可能分别代表 A 和 z)。谢谢!

private static final Pattern PATTERN = Pattern.compile("\\A(\\d+)\\.(\\d+)\\z");
4

3 回答 3

12

\A意思是“字符串的开头”,\z意思是“字符串的结尾”。

您可能已经在这种情况下看到^and $,但它们的含义可能会有所不同:如果您使用 编译正则表达式Pattern.MULTILINE,那么它们会将其含义更改为“行首”和“行尾”。\Aand的含义\z永远不会改变。

还存在\Z这意味着“字符串结尾,在任何尾随换行符之前”,这类似于$多行模式中的操作(如果它在行尾换行符之前匹配)。

于 2012-09-19T17:58:10.377 回答
4

这个 Java 表达式:

Pattern.compile("\\A(\\d+)\\.(\\d+)\\z")

产生这个正则表达式:

\A(\d+)\.(\d+)\z

where\A表示“字符串开头”,\z表示“字符串结尾”。

因此,该模式匹配任何由一位或多位数字、小数点和一位或多位数字组成的字符串。

有关 Java 正则表达式表示法的所有方面的详细信息,请参阅java.util.regex.Pattern.

于 2012-09-19T17:58:53.160 回答
1

看看这个参考

http://www.regular-expressions.info/reference.html

根据那\A匹配输入的开始,并\z匹配输入的结束。

他们\\在他们面前而不是只有 1\的原因是因为他们\也被逃脱了。

于 2012-09-19T18:01:16.537 回答