Java 捕获正则表达式类中的完整字符串
我目前正在尝试处理regex中的“leetspeak”。我有一个带字母的类,其中将填充可能的“leet”替代项。然而,其中一些备选方案有多个字符长,我很难弄清楚如何在类中包含这些字符。比如说Java 捕获正则表达式类中的完整字符串,java,regex,Java,Regex,我目前正在尝试处理regex中的“leetspeak”。我有一个带字母的类,其中将填充可能的“leet”替代项。然而,其中一些备选方案有多个字符长,我很难弄清楚如何在类中包含这些字符。比如说 [kK"|<"] [kK”|“k | k | \\\\\\\\\\\\\\使用以下正则表达式: [kK]|\|< [kK]|\|< 在Java中,您需要避开反斜杠,因此 [kK]|\\|< [kK]|\\|< 选项2:避开leet 正如您自己所建议的,使用\\Q some lee
[kK"|<"]
[kK”|“k | k | \\\\\\\\\\\\\\使用以下正则表达式:
[kK]|\|<
[kK]|\|<
在Java中,您需要避开反斜杠,因此
[kK]|\\|<
[kK]|\\|<
选项2:避开leet
正如您自己所建议的,使用\\Q some leet\\E
可以匹配任何内容,而无需担心可能需要转义特殊的正则表达式字符
解释
- 字符类
[kK]
匹配一个字符,该字符是k
或k
- 或
|
\\\\您可以为k
和k
使用一个类,然后匹配\\”。如何在类中包含这些内容“您不能,这是一个字符类,而不是字符串。您可以尝试使用类似于“k | k |\\\\\\\\\\”的东西。看起来是这样的。请看是的,您可以使用\Q…\E
转义任何序列(在Java中变成了\\Q….\\E
)我认为I
修饰符对他来说通常不是一个好主意,因为大写的东西通常不会用小写,反之亦然。
[kK]|\\|<
"[kK]|\\|<"
"[kK]|\\Q|<\\E"