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

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

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-06 01:27:02130검색

How Can I Utilize Named Groups in Java Regular Expressions?

Java Regex 명명된 그룹: 심층 탐구

Java의 java.regex 패키지에 내장된 명명된 그룹 지원이 없음에도 불구하고 , 타사 라이브러리는 이 제한 사항에 대한 솔루션을 제공합니다.

Java 7 명명된 그룹 지원

Java 7부터는 명명된 캡처 그룹이 다음과 함께 도입되었습니다. 구성:

  • (?capturing text): 명명된 그룹 "name"을 정의합니다.
  • k: 명명된 그룹 "name"을 역참조합니다.
  • ${name}: Matcher의 대체 문자열에서 캡처된 텍스트를 참조합니다.
  • Matcher.group(String name): 명명된 그룹 "name"으로 캡처된 텍스트를 검색합니다.

Java 7 이전 대안

Java 7 이전에는 여러 라이브러리에서 명명된 그룹 지원을 제공했습니다.

  • Google 명명된 정규식 : 이 라이브러리는 중첩된 명명된 그룹 및 재귀 정규식 패턴을 포함한 풍부한 기능을 제공합니다.
  • jregex: 지원이 제한되어 있지만 이 라이브러리는 여전히 기본 명명된 그룹 기능을 제공합니다.

명명된 정규식 패턴을 사용하는 다음 예를 고려하세요.

String input = "TEST 123";
Pattern pattern = Pattern.compile("(?<login>[\w]+) (?<id>[\d]+)");
Matcher matcher = pattern.matcher(input);
System.out.println("Login: " + matcher.group("login"));
System.out.println("ID: " + matcher.group("id"));

이 결과는 다음과 같습니다.

Login: TEST
ID: 123

제한 사항

Java의 명명된 그룹 지원은 다음과 같이 제한됩니다.

  • 이름당 하나의 명명된 그룹만 가능합니다. 이 제한으로 인해 캡처가 방지됩니다. 동일한 이름의 그룹이 여러 번 발생합니다.
  • 정규식 내 재귀를 지원하지 않습니다. 이름이 지정된 그룹은 정규식 패턴 내에서 재귀 대상으로 사용할 수 없습니다.

결론

타사 라이브러리는 Java에 대한 강력한 명명된 그룹 지원을 제공합니다. 그러나 Java 7에 명명된 그룹이 도입되면서 이제 개발자는 정규식 패턴에서 명명된 그룹을 사용하는 데 있어 더욱 간편하고 표준화된 접근 방식을 갖게 되었습니다.

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

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