> Java > java지도 시간 > 일치하는 텍스트를 포함하지 않고 정규식 일치 다음에 텍스트를 추출하려면 어떻게 해야 합니까?

일치하는 텍스트를 포함하지 않고 정규식 일치 다음에 텍스트를 추출하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-11-07 09:51:03
원래의
966명이 탐색했습니다.

How Can I Extract Text Following a Regex Match Without Including the Matching Text?

Regex 일치에 따른 텍스트 찾기

당신은 Regex 영역에 뛰어들었고 특별한 요구 사항에 직면했습니다. 일치 자체를 포함하지 않고 특정 일치를 수행합니다. 이것이 어떻게 달성될 수 있는지 살펴보겠습니다.

제공된 코드에서 초기 패턴 "문장(.*)"은 "문장"과 정확하게 일치하지만 다음 텍스트도 캡처하여 "멋진 문장"이 생성됩니다. ." 후속 텍스트만 분리하기 위해 "긍정적 Lookbehind 어설션"이라는 기술을 사용합니다.

Positive Lookbehind Assertion

긍정적 Lookbehind 어설션(?<= 문장)은 일치 항목에 통합하지 않고 지정된 텍스트("문장") 바로 뒤의 문자열 위치와 일치합니다. 이 주장을 활용하여 새로운 패턴을 만들 수 있습니다.

(?<=sentence).*
로그인 후 복사

Java 구현

이를 Java에서 구현하려면 다음과 같이 코드를 수정하세요.

import java.util.regex.*;

public class RegexPostMatch {
    public static void main(String[] args) {
        String example = "Some lame sentence that is awesome";
        Pattern pattern = Pattern.compile("(?<=sentence).*");

        Matcher matcher = pattern.matcher(example);

        if (matcher.find()) {
            System.out.println("Text after 'sentence': " + matcher.group());
        } else {
            System.out.println("No match found");
        }
    }
}
로그인 후 복사

이 수정된 코드는 "멋져요"라는 원하는 결과를 출력합니다.

추가 참고 사항

Java에서 긍정적인 뒤돌아보기 어설션은 다음으로 제한됩니다. 유한 길이 하위 표현식. 이는 "(?<=sentences*)"와 같은 패턴이 작동하지 않음을 의미합니다. 대신 다음과 같은 대안을 사용해 보세요.

(?<=sentence\s+|\W+sentence)
로그인 후 복사

위 내용은 일치하는 텍스트를 포함하지 않고 정규식 일치 다음에 텍스트를 추출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿