Java正则表达式解释

时间:2012-09-19 17:56:45

标签: java regex

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

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

3 个答案:

答案 0 :(得分:11)

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

您可能在此上下文中看到了^$,但它们的含义可能会有所不同:如果您使用Pattern.MULTILINE编译正则表达式,那么它们将其含义更改为“行首” “和”行尾“。 \A\z的含义永远不会改变。

还存在\Z,意思是“字符串的结尾,在任何尾随的新行之前”,类似于$在多行模式中的作用(它在行结束换行符之前匹配) ,如果它在那里)。

答案 1 :(得分:4)

这个Java表达式:

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

产生这个正则表达式:

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

其中\A表示"字符串开头" \z表示"字符串结束"。

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

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

答案 2 :(得分:1)

查看此参考资料

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

根据\A匹配输入的开头,\z匹配输入的结尾。

他们之前\\而不仅仅是\的原因是因为\也被转义了。