我想从特定位置删除数字值。我使用了一个正则表达式,但是它会从字符串中删除每个数字值。
我有这些字符串:
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+
是要替换的一位或多位数字