java - 使用正则表达式匹配罗马数字

java - 使用正则表达式匹配罗马数字,第1张

我正在尝试匹配(II|III|IV|V|VI|VII|VIII|ESQ|.JR|.SR),如果我得到匹配,我应该删除它或用""替换它。 我的代码是:

String fName=" abc III ";
fName = fName.replaceAll("(II|III|IV|V|VI|VII|VIII|ESQ|.JR|.SR)", "");

这对大多数情况都很好但是如果我给III或VI,我会在输出中得到我不想要的。我哪里错了?

最佳答案:

1 个答案:

答案 0 :(得分:2)

您可以使用:

fName = fName.replaceAll("\s*(III?|I?V|VI{1,3}|ESQ|\.?[JS]R)\s*$", "");

你需要摆脱正则表达式中的点。重构你的正则表达式,如此处所示。

RegEx Demo

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复