2015-10-07 79 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); 
} 
相關問題