在Java中替换正则表达式匹配项

在Java中替换正则表达式匹配项,java,regex,Java,Regex,我想替换&sp 输入文本:ABCD&sp;EF&p;GHIJ&bsp;吉隆坡 输出文本:ABCDZEFZGHIZKL 谁能告诉我如何替换&\D+的每个实例使用java正则表达式 我正在使用/(&\D+;)?/但它不起作用。匹配首字母&,然后匹配所有不是尾部的字符,然后是尾随

我想替换
&spZ
在下面的字符串中输入code>

输入文本:
ABCD&sp;EF&p;GHIJ&bsp;吉隆坡

输出文本:
ABCDZEFZGHIZKL

谁能告诉我如何替换
&\D+的每个实例使用java正则表达式


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

匹配首字母
&
,然后匹配所有不是尾部的字符
,然后是尾随
&[^;]+如果不匹配数字(如您的示例所建议的
\D
)是一项要求,请将数字添加到否定字符集:
[^;0-9]
要使其替换所有出现的字符,请添加全局标志
g
。该站点是创建正则表达式的便捷工具


编辑:对不起,我一开始读错了你的问题。

匹配首字母
&
,然后匹配所有不是尾部的字符
,然后是尾随
&[^;]+如果不匹配数字(如您的示例所建议的
\D
)是一项要求,请将数字添加到否定字符集:
[^;0-9]
要使其替换所有出现的字符,请添加全局标志
g
。该站点是创建正则表达式的便捷工具

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

使用

您还应使用
修改器修改+:

String str = "ABCD&sp;EF&p;GHIJ&bsp;KL";
String regex = "&\\D+?;";
System.out.println (str.replaceAll(regex,"Z"));
这应该可以使用

您还应使用
修改器修改+:

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

由于未显示任何尝试,并且您自己对问题的描述似乎不正确,因此投票结束时应该可以这样做。可能是
&\D+谢谢@revo。它可以工作。虽然它可以工作,但它与整个
&。您可能需要使用
和[^;\d]*”。投票关闭,因为未显示任何尝试,并且您自己对问题的描述似乎不正确。可能是
&\D+谢谢@revo。它可以工作。虽然它可以工作,但它与整个
&。您可能需要使用
和[^;\d]*取而代之。