2013-07-08 2 views
4
String str=",Name=Tom,Age=23,something=something,roll=1,somethng=55," 

값이 숫자 인 문자열에서 모든 키 값 쌍을 제거하고 싶습니다. 정규식을 사용하여 특정 패턴을 제거하십시오.

지금 내가이

Pattern p = Pattern.compile(",[^=]*?=([^,]*),"); 
    Matcher m = p.matcher(str); 
    String result = ""; 
    while (m.find()) { 
     if (!isNumeric(m.group(1))) { 
      result += m.group(0); 
     } 

    } 
    System.out.println(result); 

예상 출력과 같은 일을하고하는 것은

",Name=Tom,something=something," 

입니다 그러나 지금은

",Name=Tom,,something=something," 

이 도와주세요 얻고있다.

답변

5
result=str.replaceAll(",[^=]*?=[0-9]+", ""); 
System.out.println(result); 

시도해 볼 수 있습니다.

+0

마지 못해 한정 기호가 필요하지 않습니다. –

+0

@ Njay : 그것은 매력처럼 작동합니다. 고맙습니다. D : D –

+0

정규 표현식' "(^ |,) [^, =] + = [0-9] + (? =, | $)"'를 사용합니다. 선행 쉼표가 없거나 뒤에 쉼표가 없거나'', name = Tom, publicKey = 24abf3ced, other = something, "', 정규 표현식이'', name = Tomabf3ced, other = something과 같은 값을 방지합니다. , " – FrankieTheKneeMan

관련 문제