我正在尝试编写一个可以在两个单词之间获取字符串的REGEX。 这是代码,
Pattern MY_PATTERN = Pattern.compile("/\\x22(.*?)/\\x22");
Matcher m = MY_PATTERN.matcher("sasaa \\x22 kjhkjhk \\x22,sasas");
while (m.find()) {
String s = m.group(1);
System.out.println("Tocken:"+s);
}
我想要 kjhkjhk 但是匹配器不会返回任何内容,请告诉我我做错了什么。
答案 0 :(得分:4)
Pattern.compile( “\\\\ X22(*)\\\\ X22?”);
您必须使用另一个反斜杠转义模式中的反斜杠。由于反斜杠必须首先在任何Java字符串中使用另一个反斜杠进行转义(就像您在输入字符串中所做的那样),因此您必须总共有4个反斜杠。
答案 1 :(得分:4)
您可以使用此模式:
public static void main(String[] args)
{
Pattern MY_PATTERN = Pattern.compile("\\\\x22\\s(.*?)\\s\\\\x22");
Matcher m = MY_PATTERN.matcher("sasaa \\x22 kjhkjhk \\x22,sasas");
while (m.find()) {
String s = m.group(1);
System.out.println("Tocken:"+s);
}
}
输出:
Tocken:kjhkjhk