2014-09-02 4 views
0

"digit ~ digit ~ string ~ sentence"와 일치하는 정규식 패턴을 작성하려고합니다. 예 : 14~742091~065M998~P E ROUX 214. 나는 지금까지 다음과 같이 왔어요 :정규식을 사용하여 일부 패턴 추출

String regex= "\\d+~?\\d+~?\\w+~?"

어떻게 마지막 ~ 후 문장을 추출 할 수 있습니까?

+4

이유 's.split ("~")'뿐만 아니라? –

+0

또는. 이 정규식'(? <= ~) [^ ~] * $' –

답변

1

사용 Capturing Groups :

\d+~?\d+~?\w+~(.*) 

group(1) 원하는 부분이 포함되어 있습니다.

String#split 다른 솔루션을 사용하고이 패턴 있듯이

String[] splitted = myString.split("~"); 
String res = splitted[splitted.length() - 1]; 
0

사용 포착 기 () : "\\d+~\\d+~\\w+~(.*)". greedy 한정 기호 ?이 필요하지 않습니다.

String input = "14~742091~065M998~P E ROUX 214"; 

Pattern pattern = Pattern.compile("\\d+~\\d+~\\w+~(.*)"); 
//Pattern pattern = Pattern.compile("(?:\\d+~){2}\\w+~(.*)"); (would also work) 

Matcher matcher = pattern.matcher(input); 

if (matcher.matches()) { 
    System.out.println(matcher.group(1)); 
} 

인쇄 :

P E ROUX 214

0

더 자세한 내용은 원하는 출력, 를 추출 ()를 사용해야합니다 당신을 위해 작동해야 here

0
.*~(.*)$ 

이 간단한 정규식을 참조하십시오.

See demo

0

정규 표현식 아래 시도 문장 영숫자 포함 공백

^\ D + ~ \ D + ~ \ w + ~ [\ w \ S] +

관련 문제