小编典典
您要匹配的“字符”为:
"[/\\\\]"
先为字符串复制反斜杠,然后再为正则表达式复制。
当您需要在也使用反斜杠转义字符串的语言中使用反斜杠时,这可能是最讨厌的正则表达式。
Java编译器会"\\\\"在源代码中看到该字符串,并实际上将其转换为字符串"\\"(因为它\用作转义字符)。
然后,正则表达式将看到该正则表达式,"\\"并且由于它也\用作转义字符,因此会将其视为单个\字符。
作为柳岩在评论中指出,你可以摆脱 一个 使用以下的一个反斜杠的水平(正则表达式之一):
".*[/\\x5c].*"
".*[/\\u005c].*"
这可能会使它更具可读性。
完成所有简化操作后,您就指定了由两个斜杠组成的字符类,并且如果所讨论的字符与两个斜杠中的任何一个均匹配,则返回true。
以下代码显示了这一点:
public class testprog {
public static void checkString (String s) {
boolean yes = s.matches(".*[/\\\\].*");
System.out.println ("'" + s + "': " + yes);
}
public static void main (String s[]) {
checkString ("Hi/Hello/Bye/");
checkString ("Hi\\Hello\\Bye\\");
checkString ("Hi\\Hello/Bye\\");
checkString ("HiHelloBye");
}
}
它输出:
'嗨/你好/再见/':是
'Hi \ Hello \ Bye \':是
'Hi \ Hello / Bye \':是
'HiHelloBye':否
2020-11-01