有人可以向我解释和的含义\\A吗\\z?我假设它们在这个正则表达式中具有特殊含义,因为它们正在被转义(但我可能是错的,它们可能分别代表 A 和 z)。谢谢!
private static final Pattern PATTERN = Pattern.compile("\\A(\\d+)\\.(\\d+)\\z");
\A意思是“字符串的开头”,\z意思是“字符串的结尾”。
您可能已经在这种情况下看到^and $,但它们的含义可能会有所不同:如果您使用 编译正则表达式Pattern.MULTILINE,那么它们会将其含义更改为“行首”和“行尾”。\Aand的含义\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\的原因是因为他们\也被逃脱了。