> Java > java지도 시간 > 본문

Java 소프트웨어 엔지니어를 위한 정규식

Mary-Kate Olsen
풀어 주다: 2024-11-01 01:52:28
원래의
426명이 탐색했습니다.

Regex for a Java Software Engineer

왜 정규식이 필요한가요?

정규 표현식은 텍스트에서 특정 시퀀스를 검색하는 데 도움이 되는 패턴입니다. Java에서는 java.util.regex 패키지의 클래스와 함께 사용됩니다.
정규식을 사용하면 너무 많은 코드를 추가하지 않고도 패턴을 찾고, 텍스트를 바꾸고, 입력을 확인할 수 있습니다.

기본 구문

몇 가지 일반적인 정규식 기호와 그 기능을 살펴보겠습니다.

  1. 리터럴 문자: 가장 간단한 정규식은 일반 텍스트입니다. hello는 문자열에 hello가 있는 모든 항목과 일치합니다.

  2. 와일드카드:
    .: 모든 단일 문자와 일치합니다(h.llo는 hello, hallo, hxllo와 일치함).

  3. 문자 세트:
    [abc]: 대괄호 안의 모든 문자와 일치합니다(h[aeiou]llo는 hello, hello와 일치함).
    [a-z]: a에서 z까지의 모든 소문자와 일치합니다.

  4. 정량자:
    *: 뒤에 있는 문자가 0개 이상 일치합니다(go*gle은 google, ggle, goooooooogle과 일치함).
    : 하나 이상의 항목과 일치합니다(go gle은 google, gooogle과 일치하지만 ggle은 일치하지 않음).
    ?: 뒤에 있는 문자가 0개 또는 1개 발생하는 것과 일치합니다(colo?ur는 색상과 색상 모두와 일치합니다).

  5. 앵커:
    ^: 줄의 시작을 나타냅니다(^hello는 hello로 시작하는 모든 줄과 일치합니다).
    $: 줄의 끝을 나타냅니다(world$는 world로 끝나는 모든 줄과 일치합니다).

  6. 그룹:
    (abc): 여러 문자를 단일 단위로 그룹화합니다((ha)는 ha, haha, hahaha와 일치).

  7. 이스케이프 문자:
    . 또는 *와 같은 일부 문자는 특별한 의미를 가지므로 문자 그대로 사용하려면 앞에 백슬래시를 붙입니다. 예를 들어, . 문자 그대로의 점과 일치합니다.

간단한 예:

패턴: 정규식을 컴파일하고 텍스트에서 일치시킵니다.
Matcher: 특정 텍스트에 패턴을 적용하고 일치하는 항목을 찾는 데 도움을 줍니다.

다음은 이러한 수업이 어떻게 함께 작동하는지에 대한 간단한 예입니다.

java.util.regex.* 가져오기;

import java.util.regex.*;

public class RegexBasicsDemo {
    public static void main(String[] args) {
        String text = "hxllo hallo hbllllllo hello";
        Pattern pattern = Pattern.compile("h.llo");
        Matcher matcher = pattern.matcher(text);
        while (matcher.find()) {
            System.out.println("Wildcard match found: " + matcher.group());
        }
   }
}
로그인 후 복사

인쇄 내용:

  • 와일드카드 일치 항목이 발견되었습니다: hxllo
  • 와일드카드 일치 항목 발견: hello
  • 와일드카드 일치 항목 발견: hello
import java.util.regex.*;

public class RegexReplaceExample {
    public static void main(String[] args) {

        String text = "hello hzllo hallo hillo";
        Pattern pattern = Pattern.compile("h[aeiou]llo");
        Matcher matcher = pattern.matcher(text);

        String result = matcher.replaceAll("hi");

        System.out.println("Original text: " + text);
        System.out.println("Text after replacement: " + result);
    }
}
로그인 후 복사

인쇄 내용:

  • 원문: hello hzllo hallo hillo
  • 교체 후 문자: hi hzllo hi hi

유용한 Java 정규식 메서드

  • match(): 전체 텍스트가 정규식 패턴과 일치하는지 확인합니다.
  • find(): 텍스트에서 패턴의 발생을 검색합니다(입력 시퀀스의 하위 시퀀스가 ​​이 일치자의 패턴과 일치하는 경우에만 true를 반환합니다)
  • group(): find()를 호출한 후 일치하는 텍스트를 반환합니다.
  • replacementAll(): 텍스트의 일치 항목을 대체 문자열로 바꿉니다

정규식에 대한 나의 의견

Java 개발자로서 저는 정규 표현식이 텍스트 처리에 얼마나 강력한지를 정말 높이 평가하게 되었습니다. 잘 만들어진 정규식 한 줄이 전체 코드 블록이 필요할 수도 있는 작업을 어떻게 처리할 수 있는지 보는 것은 놀랍습니다. 간단한 일치의 경우 정규식은 완벽하다고 느껴집니다. 형식 검증이나 패턴 추출과 같은 작업에 간결하고 효율적이며 이상적입니다.

하지만 모든 사람이 같은 생각을 하는 것은 아닙니다. Regex는 직관적이지 않을 수 있으며 패턴이 복잡해지기 시작하면 가독성이 저하됩니다. 마법처럼 작동하는 패턴을 만드는 것은 쉽지만 다른 사람(또는 나중에 멋진 휴가를 마치고 돌아온 후 자신)이 한 눈에 이해하는 것은 거의 불가능합니다. 복잡한 패턴은 빠르게 "쓰기 전용" 코드가 될 수 있습니다.

이러한 상황에서는 검증을 더 작고 간단한 단계로 나누는 것이 더 낫다는 것을 알았습니다. 이렇게 하면 상황이 더 명확해지고 다른 사람들이 논리를 더 쉽게 따를 수 있습니다. 정규식은 Java에서 매우 유용한 도구이지만, 특히 팀 환경에서는 약간의 제한을 두고 사용하는 것이 가장 좋다고 생각합니다. 결국, 유지 관리 가능한 코드를 작성한다는 것은 그것을 읽을 다음 사람을 생각한다는 의미입니다.

위 내용은 Java 소프트웨어 엔지니어를 위한 정규식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!