如何删除字符串中特定位置的数字值
我想从特定位置位置删除数字值。我使用了一个正则表达式,但它从字符串中删除了每个数字值。如何删除字符串中特定位置的数字值
我有这些字符串:
Draft1(admin)
Draft2(adminn)
Draft21(admin23)
Draft112(admin211)
而且我想这些字符串为:
Draft(admin)
Draft(adminn)
Draft(admin23)
Draft(admin211)
目前我使用正则表达式:
name = name.replaceAll("\\d", "");
它取代所有的数值并且我得到类似于:
Draft(admin)
(?<=Draft)\\d+\\b
您可以使用此并更换由empty string
.The lookbehind
将确保它Draft
后只更换号码。
您可以简单地使用String#replaceFirst
与像(?i)(?<=Draft)\d+
正则表达式来删除这个数字:
name = name.replaceFirst("(?i)(?<=Draft)\\d+","");
其中:
(?i)
使得正则表达式CASEINSENSITIVE,所以草案可能会更草案或草案
(?<=Draft)
对于Draft
字来说是向后看的,它声明紧接在字符串当前位置之前的是Draft
\\d+
是一个或多个数字被替换
谢谢!它的工作... :) –
不客气)如果答案是有帮助的,你可以接受它或upvote – Stanislav
你可以试试这个
class String111
{
public static void main(String args[])
{
String s1="Draft1(admin)";
String s2="Draft21(admin23)";
System.out.println(s1.substring(0,s1.indexOf('(')).replaceAll("\\d", "")+s1.substring(s1.indexOf('('),s1.length()));
System.out.println(s2.substring(0,s2.indexOf('(')).replaceAll("\\d", "")+s2.substring(s2.indexOf('('),s2.length()));
}
}
这工作
public static void main(String[] args) {
String name = "Draft112(admin211)";
name = name.replaceAll("\\d+(?=\\()","");
System.out.println(name);
}
'string.replaceFirst(“\\ d +(?= \\ ()“,”“);' –