>  기사  >  Java  >  Java 정규식에서 명명된 캡처링 그룹을 어떻게 사용할 수 있습니까?

Java 정규식에서 명명된 캡처링 그룹을 어떻게 사용할 수 있습니까?

DDD
DDD원래의
2024-11-04 22:10:02552검색

How can I use named capturing groups in Java regular expressions?

Java의 명명된 그룹화

Java의 java.regex 패키지는 명명된 그룹화를 지원하지 않습니다. Java 7 이상

Java 7 이상에서는 이제 명명된 그룹화를 지원합니다. 명명된 그룹은 다음을 사용하여 정의할 수 있습니다.

명명된 그룹은 다음을 사용하여 참조할 수 있습니다.

<code class="java">(?<name>capturing text)</code>

k: 명명된 그룹 역참조

    Matcher .group(문자열 name): Matcher.replaceAll()의 지정된 명명된 그룹화
  • ${name}에 따라 캡처된 입력 하위 시퀀스를 반환합니다. 문자열
  • 대안(Java 7 이전 버전용)

Java 7용 이전 버전의 경우 다음 대안을 사용할 수 있습니다.

Google 명명된 정규식

: 명명된 그룹화를 지원하는 경량 라이브러리입니다.
  • jregex: 명명된 그룹화 지원을 포함하여 기능이 풍부한 정규식 라이브러리입니다.
  • 사용자 정의 구현

자신만의 Regex 버전을 작성하여 명명된 그룹화를 지원할 수도 있습니다. 예를 들어 Regex2 라이브러리는 이러한 지원을 제공합니다.

이름이 지정된 그룹화를 사용하는 정규식 예:

이름이 지정된 그룹을 사용하는 Java 코드 예:

(?<login>\w+) (?<id>\d+)
명명된 그룹화를 사용한 텍스트 대체 예:

Pattern pattern = Pattern.compile("(?&lt;login&gt;\w+) (?&lt;id&gt;\d+)");
Matcher matcher = pattern.matcher("TEST 123");

if (matcher.find()) {
  String login = matcher.group("login");
  String id = matcher.group("id");
}
명명된 그룹화를 사용한 역참조 예:

위 내용은 Java 정규식에서 명명된 캡처링 그룹을 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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