Java Regex – 정규식이란 무엇이며 어떻게 사용합니까?



Java Regex는 문자열을 검색하거나 조작하기위한 패턴을 정의하는 데 사용되는 API입니다. 이 기사에서는 Java에서 제공하는 다양한 정규식 클래스에 대해서도 설명합니다.

데이터 추출 또는 유효성 검사는 모든 프로그래밍 언어의 중요한 측면입니다. 데이터 유효성 검사에 가장 많이 사용되는 방법 중 하나는 정규식을 사용하는 것입니다. 이것을 사용문자 패턴을 설명하는 정규식. 이 기사는 자바 정규식 다음 순서로 표현식을 사용하는 다양한 방법을 나열합니다.

시작하자!





정규식이란 무엇입니까?

정규식 검색 패턴을 구성하는 일련의 문자입니다. 텍스트에서 데이터를 검색 할 때이 검색 패턴을 사용하여 찾고있는 내용을 설명 할 수 있습니다.

정규식-Java Regex-Edureka



정규식은 단일 문자 또는 더 복잡한 패턴. 모든 유형의 텍스트 검색 및 텍스트 교체 작업에 사용할 수 있습니다. Regex 패턴은 다음과 같은 간단한 문자로 구성됩니다. / abc / 또는 다음과 같은 단순 및 특수 문자의 조합 /알파벳/ 또는 /example(d+).d*/ .

Java Regex 란 무엇입니까?

그만큼 자바 정규식 사용되는 API입니다 검색 또는 조작을위한 패턴 정의 . 비밀번호 및 이메일 유효성 검사와 같은 문자열에 대한 제약 조건을 정의하는 데 널리 사용됩니다.

Java Regex를 사용하는 방법에는 여러 가지가 있습니다. 그럼 계속해서 다른 표현을 살펴 보겠습니다.



Matcher 클래스

이 클래스는 문자 시퀀스에서 일치 작업을 수행하는 데 사용됩니다. 아래 표는 Matcher 클래스의 다양한 메소드를 나타냅니다.

파이썬에서 문자열을 뒤집는 방법
방법 기술
부울 매치 () 주어진 정규식이 패턴과 일치하는지 테스트
부울 find () 패턴과 일치하는 다음 표현식을 찾는 데 사용됩니다.
부울 찾기 (int start) 주어진 시작 번호에서 패턴과 일치하는 다음 표현식을 검색합니다.
문자열 그룹 () 일치하는 하위 시퀀스를 반환하는 데 사용됩니다.
int start () 일치하는 하위 시퀀스의 시작 인덱스를 반환합니다.
int end () 일치하는 하위 시퀀스의 끝 인덱스를 반환합니다.
int groupCount () 일치하는 하위 시퀀스의 총 수를 반환합니다.

패턴 클래스

패턴 클래스는 정규식의 컴파일 된 버전으로 정규식 엔진의 패턴을 정의하는 데 사용됩니다.

방법 기술
정적 패턴 컴파일 (문자열 정규식) 주어진 정규식을 컴파일하고 패턴의 인스턴스를 반환합니다.
일치 항목 (CharSequence 입력) 주어진 입력을 패턴과 일치시키는 matcher를 만드는 데 사용됩니다.
정적 부울 일치 (문자열 정규식, CharSequence 입력) 컴파일 및 매처 메서드의 조합으로 작동합니다. 정규식을 컴파일하고 주어진 입력을 패턴과 일치시킵니다.
String [] split (CharSequence 입력) 주어진 패턴의 일치에 대해 주어진 입력 문자열을 분할하는 데 사용됩니다.
문자열 패턴 () 정규식 패턴을 반환하는 데 도움이

이제 정규 표현식을 작성하는 방법을 이해하기 위해 간단한 예를 들어 보겠습니다.

import java.util.regex. * public class RegexExample {public static void main (String [] args) {Pattern pattern = Pattern.compile ( '. xx.') Matcher matcher = pattern.matcher ( 'AxxB') System.out .println ( 'String은 주어진 정규식과 일치합니다-+ matcher.matches ())}}

이 경우 내부적으로 Pattern과 Matcher를 사용합니다. 정규식 클래스가 처리를 수행하지만 분명히코드 라인을 줄입니다. Pattern 클래스에는 정규식과 입력 문자열을 인수로 취하고 일치 후 부울 결과를 반환하는 match 메서드도 포함되어 있습니다. 따라서 코드는 일치하는 입력에 대해 잘 작동합니다. Java의 정규 표현식을 사용합니다. 따라서 출력은 아래와 같이 참이됩니다.

산출:
진실

c의 라운드 로빈 프로그램

이제 몇 가지 범주의 Java 정규식을 더 살펴 보겠습니다.

정규식 문자 클래스

아래 표는 다양한 문자 클래스 조합을 나타냅니다.

캐릭터 클래스기술
[알파벳] a, b 또는 c (단순 클래스)
[^ abc] a, b 또는 c를 제외한 모든 문자 (부정)
[a-zA-Z] a-z 또는 A-Z, 포함 (범위)
[a-d [m-p]] a-d 또는 m-p : [a-dm-p] (union)
[a-z && [def]] d, e 또는 f (교차)
[a-z && [^ bc]] a-z, b 및 c 제외 : [ad-z] (빼기)
[a-z && [^ m-p]] m부터 p까지가 아닌 a부터 z까지 : [a-lq-z] (빼기)

예:

import java.util.regex. * public class CharacterExample {public static void main (String args []) {// false (x 또는 y 또는 z 아님) System.out.println (Pattern.matches ( '[xyz]', 'wbcd')) // true (x 또는 y 또는 z 중) System.out.println (Pattern.matches ( '[xyz]', 'x')) // false (x 및 y가 두 번 이상 표시됨) 시스템 .out.println (Pattern.matches ( '[xyz]', 'xxyyyyyz'))}}

정규식 한정자

수량자는 문자의 발생 수를 지정합니다. 아래 표는 다양한 수량자를 나타냅니다.

정규식기술
엑스? X는 한 번 발생하거나 전혀 발생하지 않습니다.
X + X가 한 번 이상 발생
X * X가 0 회 이상 발생
X {n} X는 n 번만 발생
X {n,} X가 n 회 이상 발생
X 및 Z} X는 최소 y 회 발생하지만 z 회 미만 발생

예:

대학원과 석사의 차이
import java.util.regex. * public class Example {public static void main (String args []) {System.out.println ( '? quantifier ....') // (a or y or z comes one time) System.out.println (Pattern.matches ( '[ayz]?', 'a')) // output : true System.out.println (Pattern.matches ( '[ayz]?', 'aaa')) / / (ay와 z가 두 번 이상 온다) System.out.println (Pattern.matches ( '[ayz]?', 'ayyyyzz')) // output : false // (a가 두 번 이상 온다) 시스템. out.println (Pattern.matches ( '[ayz]?', 'amnta')) // output : false // (a 또는 y 또는 z는 한 번 입력해야 함) System.out.println (Pattern.matches ( '[ ayz]? ','ay ')) // output : false System.out.println ('+ quantifier .... ') // (a 또는 y 또는 z를 한 번 이상) System.out.println (Pattern .matches ( '[ayz] +', 'a')) // output : true // (a가 두 번 이상 나옴) System.out.println (Pattern.matches ( '[ayz] +', 'aaa' )) // outpu : true // (a 또는 y 또는 z가 두 번 이상 표시됨) System.out.println (Pattern.matches ([amn] + ','aayyyzz ')) // output : true // (z 및 t가 패턴과 일치하지 않음) System.out.println (Pat tern.matches ( '[ayz] +', 'aammta')) // output : false System.out.println ( '* quantifier ....') // (a 또는 y 또는 z는 0 번 이상 올 수 있습니다. ) System.out.println (Pattern.matches ( '[ayz] *', 'ayyyza')) // 출력 : true}}

기본적으로 일치하는 수량자를 검색하고 검색 결과와 일치합니다.

정규식 메타 문자

정규식 메타 문자는 단축 코드로 작동합니다. 다양한 유형의 메타 문자를 이해하기 위해 아래 표를 살펴 보겠습니다.

정규식기술
. 모든 문자가 될 수 있습니다 (종결 자와 일치 할 수도 있고 일치하지 않을 수도 있음).
[0-9]보다 짧은 모든 숫자를 나타냅니다.
[^ 0-9]의 약자로 숫자가 아닌 모든 것을 나타냅니다.
에스 공백 문자를 나타내며 [tnx0Bfr]의 약어입니다.
에스 공백이 아닌 문자 일 수 있으며 [^ s]의 약자입니다.
[a-zA-Z_0-9]의 약자로 단어 문자 일 수 있습니다.
[^ w]의 약자로 단어가 아닌 문자를 나타냅니다.
단어 경계를 나타냅니다.
단어가 아닌 경계입니다.

예:

import java.util.regex. * public class MetacharExample {public static void main (String args []) {// d는 숫자를 의미합니다. System.out.println ( 'metacharacters d ....') // (숫자가 아님) System.out.println (Pattern.matches ( 'd', 'abc')) // 출력 : false // (숫자 및 한 번 표시) System.out.println (Pattern.matches ( 'd', '1') ) // 출력 : true // (숫자이지만 두 번 이상 표시됨) System.out.println (Pattern.matches ( 'd', '4443')) // 출력 : false // (숫자 및 문자) System.out .println (Pattern.matches ( 'd', '323abc')) // 출력 : false // D는 숫자가 아님을 의미 System.out.println ( 'metacharacters D ....') // (숫자가 아님 두 번 이상 제공됨) System.out.println (Pattern.matches ( 'D', 'abc')) // 출력 : false // 숫자입니다. System.out.println (Pattern.matches ( 'D', '1 ')) // 출력 : false System.out.println (Pattern.matches ('D ','4443 ')) // 출력 : false // (숫자 및 문자) System.out.println (Pattern.matches (' D ','323abc ')) // 출력 : false // (숫자가 아니고 한 번만 나타남) System.out.println (Pattern.matches ('D ','m ')) // 출력 : true System.out .pr intln ( '양자가있는 메타 문자 D ....') // (숫자가 아니고 0 번 이상 올 수 있음) System.out.println (Pattern.matches ( 'D *', 'abc')) // 출력 : 진실 } }

위에서 언급 한 조건에 따라 출력을 표시합니다. 그것이 작동하는 방식입니다. 그래서 다양한 유형의 정규식. 이것으로 우리는이 기사의 끝으로 왔습니다. 나는유익한 정보를 찾으 셨기를 바랍니다. 더 자세한 정보를 원하시면 저희의 게다가.

확인 전 세계에 걸쳐 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. 우리는 당신의 여정의 모든 단계에서 당신을 돕기 위해 여기에 있습니다.이 자바 인터뷰 질문 외에 우리는 자바 개발자가되기를 원하는 학생과 전문가를 위해 설계된 커리큘럼을 마련했습니다.

질문이 있으십니까? 이 'Java Regex'기사의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 연락 드리겠습니다.