2015-10-07 123 views
1

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

我有这些字符串:

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

而且我想这些字符串为:

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

目前我使用正则表达式:

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

它取代所有的数值并且我得到类似于:

Draft(admin) 
+0

'string.replaceFirst(“\\ d +(?= \\ ()“,”“);' –

回答

0
(?<=Draft)\\d+\\b 

您可以使用此并更换由empty string .The lookbehind将确保它Draft后只更换号码。

1

您可以简单地使用String#replaceFirst与像(?i)(?<=Draft)\d+正则表达式来删除这个数字:

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

其中:

(?i)使得正则表达式CASEINSENSITIVE,所以草案可能会更草案或草案

(?<=Draft)对于Draft字来说是向后看的,它声明紧接在字符串当前位置之前的是Draft

\\d+是一个或多个数字被替换

+0

谢谢!它的工作... :) –

+0

不客气)如果答案是有帮助的,你可以接受它或upvote – Stanislav

0

你可以试试这个

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())); 
} 
} 
0

这工作

public static void main(String[] args) { 
    String name = "Draft112(admin211)"; 
    name = name.replaceAll("\\d+(?=\\()",""); 
    System.out.println(name); 
} 
相关问题