我想从特定位置删除数字值。我使用了一个正则表达式,但是它会从字符串中删除每个数字值。

我有这些字符串:

Draft1(admin)
Draft2(adminn)
Draft21(admin23)
Draft112(admin211)


我希望这些字符串为:

Draft(admin)
Draft(adminn)
Draft(admin23)
Draft(admin211)


目前我已经使用了正则表达式:

name = name.replaceAll("\\d", "");


它替换了所有的数值,我得到类似:

Draft(admin)

最佳答案

您可以将String#replaceFirst与正则表达式一起使用,例如(?i)(?<=Draft)\d+删除此数字:

name = name.replaceFirst("(?i)(?<=Draft)\\d+","");


哪里:

(?i)使正则表达式不区分大小写,因此草稿甚至可以是草稿或草稿

(?<=Draft)Draft单词后面,该单词断言字符串中当前位置的紧前面是Draft

\\d+是要替换的一位或多位数字

10-05 18:09