Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带斜杠的Java正则表达式匹配_Java_Regex_String_Match - Fatal编程技术网

带斜杠的Java正则表达式匹配

带斜杠的Java正则表达式匹配,java,regex,string,match,Java,Regex,String,Match,我想匹配单词“不适用”或“无” 所以我用 public static final String NA = "/^(n\\/a|none)$/i"; 它在java中不起作用。您能帮忙吗?Java不使用/作为正则表达式文本。(无需转义/本身)。如果要忽略大小写,可以在正则表达式中使用修饰符(?i): String NA = "^(?i)(n/a|none)$"; 或者,您可以在编译模式时使用 String NA = "^(n/a|none)$"; Pattern p = Pattern.comp

我想匹配单词“不适用”或“无”

所以我用

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

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

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

String NA = "^(?i)(n/a|none)$";
或者,您可以在编译模式时使用

String NA = "^(n/a|none)$";
Pattern p = Pattern.compile(NA, Pattern.CASE_INSENSITIVE);
要匹配Java中的“不适用”或“无”,请使用:

(?i)\b(?:n/a|none)\b
作为转义的java字符串:

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

检查是否有正斜杠或反斜杠

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

要在字符串中使用此选项,您需要转义反斜杠:

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”=真
“无”=正确
“na”=假

@Feng,不客气。顺便说一句,我忘了提到你不需要转义
/
.regex=(?I)n[/\\]a | none,string literal=(?I)n[/\\\\]a | none你想找到这些单词,还是想测试整个字符串是否是这些单词中的一个?