Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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 - Fatal编程技术网

Java 正则表达式:除去包含关键字“的标记以外的所有标记;“大学”;

Java 正则表达式:除去包含关键字“的标记以外的所有标记;“大学”;,java,regex,Java,Regex,但是我想在段落中保留三对标记,它们是[bsuniv][/bsuniv],[msuniv][/msuniv]和[phduniv][/phduniv]。换句话说,我不想去掉那些包含关键字“univ”的标签。我找不到重写正则表达式的方便方法。有人能帮我吗?你可以在这里使用消极前瞻断言:- String stripped = html.replaceAll("\\[.*?\\]", ""); 或:- 它们都将为您提供所需的输出。只有一个区别: 第一个字符对当前字符进行负向前瞻,如果后面没有univ,

但是我想在段落中保留三对标记,它们是
[bsuniv][/bsuniv]
[msuniv][/msuniv]
[phduniv][/phduniv]
。换句话说,我不想去掉那些包含关键字“univ”的标签。我找不到重写正则表达式的方便方法。有人能帮我吗?

你可以在这里使用
消极前瞻
断言:-

String stripped = html.replaceAll("\\[.*?\\]", "");
或:-

它们都将为您提供所需的输出。只有一个区别:

  • 第一个字符对当前字符进行负向前瞻,如果后面没有
    univ
    ,则移动到下一个字符
  • 第二个对每个字符前面的空字符串进行负向前瞻,如果后面没有
    univ
    ,则继续匹配单个字符
String stripped = html.replaceAll("\\[.*?\\]", "");
str = str.replaceAll("\\[(.(?!univ))*?\\]", "");
str = str.replaceAll("\\[((?!univ).)*?\\]", "");