有人可以向我解释和的含义\\A
吗\\z
?我假设它们在这个正则表达式中具有特殊含义,因为它们正在被转义(但我可能是错的,它们可能分别代表 A 和 z)。谢谢!
private static final Pattern PATTERN = Pattern.compile("\\A(\\d+)\\.(\\d+)\\z");
\A
意思是“字符串的开头”,\z
意思是“字符串的结尾”。
您可能已经在这种情况下看到^
and $
,但它们的含义可能会有所不同:如果您使用 编译正则表达式Pattern.MULTILINE
,那么它们会将其含义更改为“行首”和“行尾”。\A
and的含义\z
永远不会改变。
还存在\Z
这意味着“字符串结尾,在任何尾随换行符之前”,这类似于$
多行模式中的操作(如果它在行尾换行符之前匹配)。
这个 Java 表达式:
Pattern.compile("\\A(\\d+)\\.(\\d+)\\z")
产生这个正则表达式:
\A(\d+)\.(\d+)\z
where\A
表示“字符串开头”,\z
表示“字符串结尾”。
因此,该模式匹配任何由一位或多位数字、小数点和一位或多位数字组成的字符串。
有关 Java 正则表达式表示法的所有方面的详细信息,请参阅java.util.regex.Pattern
.
看看这个参考
http://www.regular-expressions.info/reference.html
根据那\A
匹配输入的开始,并\z
匹配输入的结束。
他们\\
在他们面前而不是只有 1\
的原因是因为他们\
也被逃脱了。