我有以下模式匹配器。
Pattern pat = Pattern.compile("[^a-z][^,.:;]");
如何在其中加入]
字符?
答案 0 :(得分:5)
答案 1 :(得分:5)
]
是一个特殊字符,用于表示character class的结尾,因此需要对其进行转义:
Pattern pat = Pattern.compile("[^a-z][^,.:;\\]]");
答案 2 :(得分:1)
您可以使用转义字符\来完成此操作,例如此\\].
答案 3 :(得分:0)
你真的不需要逃避它。正则表达式中有一个特殊规则,如果你想要列表中的实际]
字符,它必须是它上面的第一个元素。它会工作得很好。试试这段代码:
public static void main(String[] args){
String texto = "[]hello[]";
Pattern p = Pattern.compile("[]]+");
Matcher m = p.matcher(texto);
while(m.find()){
System.out.println(m.group());
}
}
答案 4 :(得分:0)
标准方法是使用quote
类的Pattern
函数。此函数返回指定String的文字模式String。
String myLiteralString = Pattern.quote(",.[:;");
Pattern pat = Pattern.compile("[^a-z][^" + myLiteralString + "]");
此方法将转义正则表达式语法的所有特殊字符。