gpt4 book ai didi

java - 为什么在 Java Regex 中需要两个斜杠才能找到 "+"符号?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:33:23 24 4
gpt4 key购买 nike

只是我不明白背后的全部含义。我知道如果我想使用正则表达式找到它们,我需要转义任何特殊含义的字符。而且我还在某处读到,如果它在 String 文字中,则需要在 Java 中转义反斜杠。但我的问题是,如果我“转义”反斜杠,它不会失去意义吗?那么它就不能转义下面的加号吗?

抛出一个错误(但它不应该起作用,因为这是你转义那些特殊字符的方式吗?):

replaceAll("\+\s", ""));

作品:

replaceAll("\\+\\s", ""));

希望这是有道理的。我只是想了解为什么我需要那些额外的斜线背后的功能,而我读过的正则表达式教程却没有提到它们。像 "\+" 这样的东西应该找到加号。

最佳答案

这里有两个“转义”。第一个反斜杠是为了转义 Java 语言的第二个反斜杠,以创建一个实际的反斜杠字符。反斜杠字符是转义 +s 以供正则表达式引擎解释的字符。这就是您需要两个反斜杠的原因——一个用于 Java,一个用于正则表达式引擎。只有一个反斜杠,Java 将 \s\+ 报告为非法转义字符——不是针对正则表达式,而是针对 Java 语言中的实际字符。

关于java - 为什么在 Java Regex 中需要两个斜杠才能找到 "+"符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25145793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com