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).)*?\\]", "");