gpt4 book ai didi

java - 用于匹配具有非法文件名字符的字符串的正则表达式

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:43:35 27 4
gpt4 key购买 nike

两个小时以来,我一直在努力弄清楚这个如何破坏正则表达式!!!现在是午夜,我得弄清楚这个然后去 sleep !!!

String str = new String("filename\\");
if(str.matches(".*[?/<>|*:\"{\\}].*")) {
System.out.println("match");
}else {
System.out.println("no match");
}

".*[?/<>|*:\"{\\}].*"是我的正则表达式。它正确地捕获了除反斜杠之外的所有内容!!!我需要知道如何让它正确捕捉反斜杠,请帮忙!

仅供引用,我要捕获的非法字符是?\/< > | *:“我有反斜杠的工作异常

最佳答案

问题是 \\ 转义了 Java 字符串中的反斜杠,您必须在正则表达式中转义它。这意味着使用四个 反斜杠:

if ("ab\\d".matches("[abd\\\\]*") {
// match
}

因为其中两个反斜杠是 Java String 转义符,所以正则表达式实际上是:

[abc\\]*

\\ 在正则表达式中是必需的以转义反斜杠。

关于java - 用于匹配具有非法文件名字符的字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2711226/

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