Java正则表达式与斜杠匹配

时间:2015-01-17 01:44:33

标签: java regex string match

我想匹配单词" N / A"或"无"。

所以我用了

public static final String NA = "/^(n\\/a|none)$/i";

它在java中不起作用。你能帮忙吗?

3 个答案:

答案 0 :(得分:2)

Java不使用/作为正则表达式文字。 (无需逃避/本身)。如果要忽略大小写,可以在正则表达式中使用修饰符(?i)

String NA = "^(?i)(n/a|none)$";

或者,您可以在编译模式时使用Pattern.CASE_INSENSITIVE

String NA = "^(n/a|none)$";
Pattern p = Pattern.compile(NA, Pattern.CASE_INSENSITIVE);

答案 1 :(得分:0)

匹配" N / A"或"无"在Java中使用:

(?i)\b(?:n/a|none)\b

作为转义的java字符串:

"(?i)\\b(?:n/a|none)\\b"

答案 2 :(得分:0)

检查正斜杠或反斜杠

正则表达式将写为(?i)n[/|\\]a|none

要在String中使用它,你需要转义反斜杠:

String pattern = "(?i)n[/|\\\\]a|none";

String[] array = 
    {
        "N/a",
        "n\\a",
        "NonE",
        "na"
    };

for(String item : array)
{
    System.out.println("\"" + item + "\" = " + item.matches(pattern));
}

控制台:

"N/a" = true
"n\a" = true
"NonE" = true
"na" = false