无法弄清楚REGEX java

时间:2016-10-12 18:00:59

标签: java regex

我正在尝试编写一个可以在两个单词之间获取字符串的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 但是匹配器不会返回任何内容,请告诉我我做错了什么。

2 个答案:

答案 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