替换Java中的正则表达式匹配

时间:2019-01-16 11:10:24

标签: java regex

我想将下面字符串中的&sp;替换为Z

输入文字:ABCD&sp;EF&p;GHIJ&bsp;KL

输出文本:ABCDZEFZGHIZKL

有人可以告诉我如何使用Java正则表达式替换&\D+;的每个实例吗?

我正在使用/(&& D +;)?/,但不起作用。

2 个答案:

答案 0 :(得分:2)

使用String#replaceAll

您还应该使用?修饰符来+:

String str = "ABCD&sp;EF&p;GHIJ&bsp;KL";
String regex = "&\\D+?;";
System.out.println (str.replaceAll(regex,"Z"));

这应该有效

答案 1 :(得分:0)

先匹配开头的&,然后匹配所有不是尾部;的字符,然后匹配尾部;,如下所示:&[^;]+;如果不匹配数字(如您必须使用带有\D的示例,将数字添加到否定字符集中:[^;0-9]要使其替换 all 出现,请添加全局标志g 。网站regexr.com是创建正则表达式的便捷工具。

编辑:对不起,我最初读错了您的问题。