gpt4 book ai didi

java - 如何在模式编译时转义方括号?

转载 作者:太空宇宙 更新时间:2023-11-04 11:35:20 24 4
gpt4 key购买 nike

我有逗号分隔的正则表达式列表:

.{8},[0-9],[^0-9A-Za-z ],[A-Z],[a-z]

我在逗号上进行了分割。现在我尝试将此正则表达式与生成的密码进行匹配。问题是 Pattern.compile 不喜欢未转义的方括号

能给我一个简单的函数,它接受一个像这样的字符串:[0-9]并返回转义字符串\[0-9\]

最佳答案

由于某种原因,上述答案对我不起作用。对于像我这样后来者来说,这就是我的发现。

我原本希望用一个反斜杠来转义括号,但是,如果您将模式存储在字符串中,则必须使用两个反斜杠。第一个反斜杠将第二个反斜杠转义到字符串中,因此正则表达式看到的是 \]。由于正则表达式只看到一个反斜杠,因此它使用它来转义方括号。

\\] 

在正则表达式中,它将匹配单个右方括号。

例如,如果您尝试匹配换行符,则只需使用单个反斜杠。您正在使用字符串转义模式将换行符插入到字符串中。正则表达式看不到 \n - 它看到换行符并与之匹配。您需要两个反斜杠,因为它不是字符串转义序列,而是正则表达式转义序列。

关于java - 如何在模式编译时转义方括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43364495/

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