>Java >java지도 시간 >긍정적인 Lookbehind 어설션을 사용하여 정규식 일치 후 텍스트를 추출하는 방법은 무엇입니까?

긍정적인 Lookbehind 어설션을 사용하여 정규식 일치 후 텍스트를 추출하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-08 01:18:03951검색

How to Extract Text After a Regex Match Using a Positive Lookbehind Assertion?

정규식 일치 후 텍스트 검색

정규식(Regex) 영역에서는 텍스트에서 특정 정보를 추출하는 것이 어려울 수 있습니다. 일반적인 작업 중 하나는 특정 일치 항목 뒤에 오는 텍스트를 검색하는 것입니다. 이 문서에서는 "문장" 문자열 뒤의 텍스트를 찾기 위한 특정 요구 사항을 확장하여 이 프로세스를 안내합니다.

기존 정규식 패턴 "문장(.*)"은 "문장" 문자열을 성공적으로 식별합니다. . 하지만 일치하는 텍스트 자체도 캡처하므로 원하는 결과가 아닙니다.

목표를 달성하려면 긍정적인 뒤돌아보기 어설션을 활용하는 것을 고려해 보세요. 이 기능을 사용하면 실제로 일치하는 텍스트를 결과의 일부로 만들지 않고도 문자열의 특정 위치를 일치시킬 수 있습니다. 귀하의 경우, "문장" 바로 뒤의 위치를 ​​포함하지 않고 일치시키려고 합니다.

다음 수정된 Regex 패턴이 이를 수행합니다.

(?<=sentence).*

패턴 분석:

  • (?<=sentence): 이 긍정적인 뒤돌아보기 어설션은 문자열 "sentence" 바로 뒤의 위치와 일치합니다.
  • .*: 이는 뒤돌아보기 어설션 뒤에 오는 모든 문자 수와 효과적으로 일치합니다. "문장" 뒤의 텍스트를 캡처합니다.

Java에서는 이 패턴을 활용하여 다음과 같이 원하는 텍스트를 검색할 수 있습니다.

Pattern pattern = Pattern.compile("(?<=sentence).*");
Matcher matcher = pattern.matcher("some lame sentence that is awesome");

boolean found = false;
while (matcher.find()) {
    System.out.println("I found the text: " + matcher.group().toString());
    found = true;
}
if (!found) {
    System.out.println("I didn't find the text");
}

이 코드는 "문장"이라는 텍스트를 인쇄합니다. is awesome'은 예상대로 '문장' 문자열을 포함하지 않은 상태입니다.

위 내용은 긍정적인 Lookbehind 어설션을 사용하여 정규식 일치 후 텍스트를 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.