Java 코드에서 정규식을 적용하는 데 문제가 있습니다.
내 텍스트 문자열 내가 이름 정보 (ABC 방송 데프)을 추출해야Regex - Java 문자열에서 정보 추출
name: Abc Def;
blah: 1 2 3;
second name: Ghi;
이 (문자열을 MyString)과 같다. 이름에는 1 개 이상의 단어가 포함될 수 있습니다. 모든 속성 (이름, ㅋ, 두 번째 이름은) 처음에 약간의 공백으로 이격되어있다
내가 사용하려고 해요 코드는
String patternStr = "\\s{2,}name:\\s([\\w ]*\\w+);";
Matcher matcher = Pattern.compile(patternStr).matcher(myString);
if (matcher.matches())
System.out.println(matcher.group(1));
내 정규식 online tools (정규식으로 잘 작동 것입니다 : \ {2,} 이름 : \ s ([\ w] * \ w +);)하지만 자바 코드로 포팅하면 간단히 작동하지 않습니다. 제가 누락 된 것에 대한 아이디어는?
덕분에 많은
편집 : 나는() matcher.find를 사용하는 경우는 잘 작동합니다. 여기
감사 : 당신은 멀티 라인 입력에 일치 할 때 플래그를 제공 할 필요가
주 (패턴의 시작과 끝에서
.match()
^
및$
로 암시 적이다) 개선하지만 matcher.matches()를 호출 할 때 문제가 있다고 생각합니다. matcher.find()를 사용하면 잘 작동합니다. – mickthompson