有这样的 XML:
<Abc>
<Bcd>C</Bcd>
<Def>E</Def>
<Fgh>G</Fgh>
</Abc>
将其更改为以下内容的正确 Java RegEx 是哪一个?
-Abc-
-Bcd-Cde-/Bcd-
<Def>E</Def>
<Fgh>G</Fgh>
-/Abc-
我做到了:
myString.replaceAll("\\<(.*?)\\>","-$1-");
但我无法进行正确的排除,因此仅更改了一些标签。
更新:使用 Pshemo 答案的否定达到了目的:
myString.replaceAll("\\<?!(KWD|COM|PLN|PUN|TYP|STR)\\>","<$1>")
最佳答案
尝试
"\\<[AB]\\>"
用于您的正则表达式。它将找到<然后A或B然后>。欲了解更多信息,请参阅http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
要进一步将其扩展为完整的字符集,您可以使用以下格式。
public class RegexString
{
private static String myString = "<Abc>\n"
+ " <Bcd>C</Bcd>\n"
+ " <Def>E</Def>\n"
+ " <Fgh>G</Fgh>\n"
+ "</Abc>";
private static final String HTML_TAGS = "/?(Abc|Bcd)";
private static final String FULL_REGEX = "<" + HTML_TAGS + ">";
public static void main(String[] args)
{
System.out.println(myString.replaceAll(FULL_REGEX, "-$1-"));
}
}
关于java - 正则表达式检测 html 标签并替换一些,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18768878/