2014-11-16 2 views
1

& 후행 문자를 특정 범위 (가급적이면 정규식 포함)에서 제거 할 수 있습니까? 예를 들어정규식이있는 Java 문자열 스트립

난 뒤 & 최고의 영어 문자를 제거하려면 :

aa11bb22cc ----> 11bb22 

나는 추천 아파치 평민 StringUtils.strip() 유틸리티 방법은 정규식 입력을 지원하지 않는 것으로 나타났습니다.

String a = "aa11bb22cc"; 
a = StringUtils.strip(a, "[a-zA-Z]"); 
System.out.println(a); 

출력 : 예를 들어

11bb22cc 

[a-zA-Z] 7 개 리터럴 문자의 목록으로 처리되었습니다.

답변

3

를 사용하여 자바의 String#replaceAll() 방법을 시도 :

str = str.replaceAll("(?i)^[a-z]+|[a-z]+$", ""); 

정규식 수단을 "대소 문자 무시, 시작 직후 문자 일치 또는 끝 직전 "

1

빈 (즉, "삭제") 대상 문자로 대체하는이 패턴을

^[a-zA-Z]+|[a-zA-Z]+$ 

Demo

^    # Start of string/line 
[a-zA-Z]   # Character Class [a-zA-Z] 
+    # (one or more)(greedy) 
|    # OR 
[a-zA-Z]   # Character Class [a-zA-Z] 
+    # (one or more)(greedy) 
$    # End of string/line