JavaRush /Java Blog /Random-KO /RegEx: 정규식을 마스터하기 위한 20가지 간단한 단계. 1 부
Artur
레벨 40
Tallinn

RegEx: 정규식을 마스터하기 위한 20가지 간단한 단계. 1 부

Random-KO 그룹에 게시되었습니다
이 기사의 원본은 여기에 있습니다 . 아마도 너무 많은 이론은 없을 것입니다. 기사 마지막 부분에서 정규식에 대한 더 자세한 자료에 대한 몇 가지 링크를 제공할 것입니다. 그러나 정규식과 같은 주제를 탐구하기 시작하는 것은 벼락치기뿐만 아니라 그 과정에서 작은 작업을 완료하여 지식을 즉시 통합할 수 있는 기회가 있다면 훨씬 더 흥미로울 것 같았습니다. RegEx: 정규식을 마스터하기 위한 20가지 간단한 단계.  파트 1 - 1시작하자. 일반적으로 프로그래밍에서 정규식('RegEx' 또는 간단히 'regex') 사용을 반대하는 사람들은 Jamie Zawinski가 쓴 다음 인용문을 인용합니다. .'" 이제 그들은 두 가지 문제를 안고 있습니다." 사실, 정규식을 사용하는 것은 아직 좋은 생각도 나쁜 생각도 아닙니다. 그리고 이것 자체로는 문제가 추가되지 않으며 어떤 문제도 해결되지 않습니다. 그것은 단지 도구일 뿐입니다. 그리고 그것을 사용하는 방법(옳든 그르든)에 따라 어떤 결과가 나올지 결정됩니다. 예를 들어 HTML 파서를 생성하기 위해 정규식을 사용하려고 하면 고통을 경험할 가능성이 높습니다 . 그러나 예를 들어 일부 문자열에서 타임스탬프만 추출하려는 경우에는 괜찮을 것입니다. 정규식을 더 쉽게 익힐 수 있도록 단 20개의 짧은 단계만으로 처음부터 정규식을 익히는 데 도움이 되는 이 강의를 구성했습니다. 이 자습서에서는 주로 정규식의 기본 개념에 중점을 두고 필요한 경우에만 고급 주제를 자세히 살펴봅니다.

1단계: 정규식을 사용하는 이유

RegEx: 정규식을 마스터하기 위한 20가지 간단한 단계.  파트 1 - 2정규식은 지정된 패턴(패턴)을 사용하여 텍스트에서 일치하는 항목을 검색하는 데 사용됩니다. 정규식을 사용하면 텍스트에서 단어 는 물론 개별 리터럴 및 메타 문자와 특정 기준을 충족하는 해당 시퀀스를 쉽고 간단하게 추출할 수 있습니다 . Wikipedia 에서 이에 대해 설명하는 내용은 다음과 같습니다. 정규 표현식은 메타 문자(와일드카드 문자) 사용을 기반으로 텍스트의 하위 문자열을 검색하고 조작하기 위한 공식 언어입니다. 검색에는 기호와 메타 기호로 구성되고 검색 규칙을 정의하는 샘플 문자열(영어 패턴, 러시아어에서는 종종 "템플릿", "마스크"라고 함)이 사용됩니다. 텍스트를 조작하기 위해 특수 문자도 포함할 수 있는 대체 문자열을 추가로 지정합니다. dog패턴은 다음 문장의 단어만큼 간단할 수 있습니다 .
날렵한 갈색여우가 게으른 개를 뛰어넘습니다.
이 정규식은 다음과 같습니다.
...충분히 쉽지 않나요? 패턴은 문자를 포함하는 모든 단어일 수도 있습니다 o. 이러한 패턴을 찾는 정규식은 다음과 같습니다.
\ 우와 * _
( 여기에서 이 정규식을 시험해 볼 수 있습니다 .) "일치" 요구 사항이 더욱 복잡해짐에 따라 정규식도 더욱 복잡해짐을 알 수 있습니다. 문자 그룹을 지정하고 반복 패턴을 일치시키기 위한 추가적인 표기법 형식이 있는데, 이에 대해서는 아래에서 설명하겠습니다. 그러나 일부 텍스트에서 패턴과 일치하는 항목을 찾으면 이를 어떻게 할 수 있습니까? 최신 정규식 엔진을 사용하면 포함된 텍스트에서 문자 또는 문자 시퀀스(하위 문자열)를 추출하거나 제거하거나 다른 텍스트로 바꿀 수 있습니다. 일반적으로 정규식은 텍스트를 구문 분석하고 조작하는 데 사용됩니다. 예를 들어 IP 주소처럼 보이는 하위 문자열을 추출한 다음 이를 확인하려고 시도할 수 있습니다. 또는 이름과 이메일 주소를 추출하여 데이터베이스에 저장할 수도 있습니다. 또는 정규식을 사용하여 이메일에서 민감한 정보(여권 번호, 전화번호 등)를 찾아 사용자에게 위험에 처할 수 있음을 알립니다. Regex는 배우기는 쉽지만 숙달하기는 어려운 다재다능한 도구입니다. "음악을 잘 연주하는 것과 음악을 만드는 것에는 차이가 있듯이 정규식을 아는 것과 이해하는 것에는 차이가 있습니다." - Jeffrey E. F. Friedl, 정규 표현식 마스터하기

2단계: 대괄호[]

이해하기 쉬운 가장 간단한 정규식은 정규식 패턴과 대상 문자열 사이에서 문자별로 일치하는 항목을 찾는 정규식입니다. 예를 들어, 고양이를 찾아보자: RegEx: 정규식을 마스터하기 위한 20가지 간단한 단계.  파트 1 - 3
패턴: 고양이
string: 고양이가 차 밑으로 달려가다가 잘렸습니다.
일치:      ^^^
( 실제 작동 방식 - 여기 참조 ) 주의! 여기에는 모든 솔루션이 가능한 솔루션으로만 제시되어 있습니다. 일반적인 프로그래밍과 마찬가지로 정규식에서도 동일한 문제를 다양한 방법으로 해결할 수 있습니다. 그러나 엄격한 문자별 비교 외에도 대괄호를 사용하여 대체 일치 항목을 지정할 수도 있습니다.
패턴: ca[rt]
string: 고양이가 차 밑으로 달려가다가 잘렸습니다.
일치:      ^^^ ^^^
( 작동 방법 ) 여는 대괄호와 닫는 대괄호는 정규식 엔진에 지정된 문자 중 하나만 일치해야 함을 알려줍니다. 예를 들어, 위의 정규식은 전체 단어를 찾지 않고 cart단어의 일부만 찾습니다.
패턴: ca[rt]
string: 고양이가 카트 밑으로 달려가다가 잘렸습니다.
일치:      ^^^ ^^^
( 작동 방식 ) 대괄호를 사용하면 정규식 엔진이 대괄호 안에 포함된 문자 중 하나만 일치하도록 지시합니다. 엔진은 문자를 찾은 c다음 문자를 찾습니다 a. 그러나 다음 문자가 r또는 이 아닌 경우 t이는 완전한 일치가 아닙니다. 을 찾은 ca다음 r, 또는 중 하나를 찾으면 t중지됩니다. 대괄호는 포함된 문자 중 하나만 일치해야 함을 나타내기 때문에 더 많은 문자를 일치시키려고 시도하지 않습니다. 찾으면 next 라는 단어를 찾고 , 이미 시퀀스와 일치하는 항목을 찾았으므로 중지 ca합니다 . rcartcar

훈련 목표:

현지 방언으로 번역할 수 없는 말장난을 발췌 had하여 10가지 패턴 모두와 일치하는 정규식을 작성하세요 .Had
무늬:string: Bill이 "had"를 
가졌던 Jim은 " had had"를 가지고 있었습니다 . '했다'가 맞았습니다.
일치 항목:                  ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^
( 가능한 해결 방법은 여기에서 확인하세요 .) 다음 문장의 모든 동물 이름은 어떻습니까?
무늬:
string: 박쥐, 고양이,  가 술집에 들어갔습니다...
일치 항목:    ^^^ ^^^ ^^^
( 가능한 해결책 ) 또는 더 간단하게: bar또는 단어를 찾으세요 bat.
무늬:
string: 박쥐, 고양이,  가 술집에 들어갔습니다...
일치:    ^^^ ^^^
( 가능한 해결책 ) 이제 우리는 다소 복잡한 정규식을 작성하는 방법을 이미 배웠으며 이제 2단계에 불과합니다! 계속하자!

3단계: 이스케이프 시퀀스

RegEx: 정규식을 마스터하기 위한 20가지 간단한 단계.  파트 1 - 4이전 단계에서는 대괄호에 대해 알아보고 []정규식 엔진을 사용하여 대체 일치 항목을 찾는 데 어떻게 도움이 되는지 배웠습니다. 하지만 여는 대괄호와 닫는 대괄호 자체의 형태로 일치하는 항목을 찾고 싶다면 어떻게 해야 할까요 []? 단어와 문자별로 일치하는 항목을 찾으려고 cat정규식 엔진에 이 문자 시퀀스( cat)를 제공했습니다. []같은 방법으로 대괄호를 찾아보겠습니다 .
패턴: [] 
문자열: 정규식을 사용하여 []를 일치시킬 수 없습니다! 당신은 이것을 후회할 것입니다!
성냥: 
( 무슨 일이 있었는지 살펴보겠습니다 .) 그러나 뭔가가 작동하지 않았습니다... 이는 대괄호 문자가 일반적으로 다른 것을 나타내는 데 사용되는 특수 정규식 엔진 문자 역할을 하며 문자 자체와 일치하는 패턴이 아니기 때문입니다. 2단계에서 기억했듯이 정규식 엔진이 그 사이에 포함된 모든 문자와 일치할 수 있도록 대체 일치 항목을 찾는 데 사용됩니다. 사이에 문자를 넣지 않으면 오류가 발생할 수 있습니다. 이러한 특수 문자를 일치시키려면 앞에 백슬래시 문자를 붙여서 이스케이프해야 합니다 \. 백슬래시(또는 백슬래시)는 정규식 엔진에 다음 문자를 메타 문자로 사용하는 대신 문자 그대로 찾도록 지시하는 또 다른 특수 문자입니다. [정규식 엔진은 문자 그대로 둘 다 앞에 백슬래시가 있는 ]경우 에만 문자를 찾습니다 .
패턴: \[\]
문자열: 정규식을 사용하여 []를 일치시킬 수 없습니다! 당신은 이것을 후회할 것입니다!
일치:                  ^^ 
( 이번에는 무슨 일이 일어났는지 살펴보겠습니다 .) 좋습니다. 백슬래시 자체를 찾고 싶다면 어떻게 해야 할까요? 대답은 간단합니다. 백슬래시 \도 특수 문자이므로 이스케이프 처리해야 합니다. 어떻게? 백슬래시!
패턴: \\
문자열: C:\Users\Tanja\Pictures\Dogs
일치:    ^ ^ ^ ^
( 실제로도 같은 예 ) 특수 문자 앞에는 백슬래시가 와야 합니다. 다른 모든 문자는 기본적으로 문자 그대로 해석됩니다. 예를 들어 정규식은 문자 그대로 소문자 t만 일치합니다 .t
패턴: t
문자열: tttt
일치: ^ ^ ^ ^
( ) 그러나 이 시퀀스는 \t다르게 작동합니다. 탭 문자를 검색하기 위한 템플릿입니다.
패턴: \t
문자열: tttt
일치:   ^ ^ ^
( ) 일반적인 이스케이프 시퀀스에는 \n(UNIX 스타일 줄 바꿈) 및 \r(Windows 스타일 줄 바꿈에 사용됨 \r\n)이 포함됩니다. \r"캐리지 리턴" 문자와 \n"줄 바꿈" 문자는 모두 텔레타이프라이터가 널리 사용되던 시절 ASCII 표준에 따라 정의되었습니다. 다른 일반적인 이스케이프 시퀀스는 이 튜토리얼의 뒷부분에서 다루겠습니다.

그동안 몇 가지 간단한 퍼즐을 통해 자료를 강화해 보겠습니다.

정규식을 찾으려면 정규식을 작성해 보세요. 정규식 ;) 결과는 다음과 같아야 합니다.
무늬:
문자열: ...이 정규식 ` \[\] `를 정규식과 일치시킵니까?
일치:                       ^^^^	
( 해결책 ) 관리하셨나요? 잘하셨어요! 이제 다음과 같은 이스케이프 시퀀스를 검색하는 정규식을 만들어 보십시오.
무늬:
문자열: ` \r `, ` \t ` 및 ` \n `은 모두 정규식 이스케이프 시퀀스입니다.
일치:   ^^ ^^ ^^
( 해결책 )

4단계: 점을 사용하여 "모든" 문자 찾기.

RegEx: 정규식을 마스터하기 위한 20가지 간단한 단계.  파트 1 - 5이전 단계에서 본 이스케이프 시퀀스 일치 솔루션을 작성할 때 "백슬래시 문자와 그 뒤에 오는 다른 문자를 일치시킬 수 있나요?"라고 궁금해하셨을 것입니다... 물론 가능합니다! (거의) 모든 문자를 일치시키는 데 사용되는 또 다른 특수 문자인 점(마침표) 문자가 있습니다. 그 기능은 다음과 같습니다.
패턴: .
문자열: 미안해요, Dave. 저는 그렇게 할 수 없을 것 같습니다.
일치 항목: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^	
( ) 이스케이프 시퀀스처럼 보이는 패턴만 일치시키려면 다음과 같이 할 수 있습니다.
패턴: \\. 
문자열: 안녕하세요 Walmart는 제 손자입니다. 그의 이름은 " \n \r \t "입니다.
일치:                                              ^^ ^^ ^^	
( ) 그리고 모든 특수 문자와 마찬가지로 리터럴 .과 일치시키려면 문자 앞에 문자를 와야 합니다 \.
패턴: \. 
문자열: 전쟁은 평화입니다 . 자유는 노예입니다 . 무지는 힘이다 . 
일치:             ^ ^ ^
( )

5단계: 문자 범위

RegEx: 정규식을 마스터하기 위한 20가지 간단한 단계.  파트 1 - 6기호는 필요하지 않고 텍스트에서 글자만 찾고 싶다면 어떻게 해야 할까요? 아니면 숫자? 아니면 모음? 문자 클래스와 해당 범위로 검색하면 이를 달성할 수 있습니다.
` \n `, ` \r ` 및 ` \t ` 는 공백 문자 ` \ 입니다 . `, ` \\ ` 및 ` \[ `는 가 아닙니다 .	
텍스트에 눈에 띄는 표시를 만들지 않는 문자는 "공백"입니다 . 공백 " "은 공백, 줄 바꿈 또는 탭입니다. 위의 구절에서 공백 문자만 나타내는 이스케이프 시퀀스를 찾고 싶지만 다른 이스케이프 시퀀스는 찾고 싶지 않다고 가정 \n해 보겠습니다 . 우리는 어떻게 이것을 할 수 있었습니까? \r\t
패턴: \\[nrt] 
문자열: ` \n `, ` \r ` 및 ` \t ` 는 공백 문자 ` \ 입니다 . `, ` \\ ` 및 ` \[ `는 가 아닙니다 .
일치:   ^^ ^^ ^^	
( ) 이것은 효과가 있지만 매우 우아한 솔루션은 아닙니다. 나중에 "폼 피드" 문자에 대한 이스케이프 시퀀스를 일치시켜야 하는 경우 어떻게 해야 합니까 \f? (이 기호는 텍스트의 페이지 구분을 나타내는 데 사용됩니다.)
패턴: \\[nrt] 
문자열: ` \n `, ` \r `, ` \t ` 및 ` \f ` 는 공백 문자 ` \ 입니다 . `, ` \\ ` 및 ` \[ `는 가 아닙니다 .
일치:   ^^ ^^ ^^	
( 작동하지 않는 솔루션 ) 이 접근 방식을 사용하면 일치시키려는 각 소문자를 대괄호 안에 별도로 나열해야 합니다. 이를 수행하는 더 쉬운 방법은 문자 범위를 사용하여 소문자와 일치시키는 것입니다.
패턴: \\[az] 
문자열: ` \n `, ` \r `, ` \t ` 및 ` \f ` 는 공백 문자 ` \ 입니다 . `, ` \\ ` 및 ` \[ `는 가 아닙니다 .
일치:   ^^ ^^ ^^ ^^	
( 그리고 이것은 이미 작동합니다 .) 위의 예에서 문자 범위는 예상대로 작동합니다. 일치시키려는 첫 번째 문자와 마지막 문자 주위에 대괄호를 배치하고 그 사이에 하이픈을 넣습니다. 예를 들어, 백슬래시 "세트"와 에서 까지 \의 한 문자 만 찾으려면 다음을 수행할 수 있습니다. am
패턴: \\[am] 
문자열: ` \n `, ` \r `, ` \t ` 및 ` \f ` 는 공백 문자 ` \ 입니다 . `, ` \\ ` 및 ` \[ `는 가 아닙니다 .
일치:                         ^^	
( ) 여러 범위를 일치시키려면 대괄호 사이에 끝에서 끝까지 배치하면 됩니다.
패턴: \\[a-gq-z] 
문자열: ` \n `, ` \r `, ` \t ` 및 ` \f ` 는 공백 문자 ` \ 입니다 . `, ` \\ ` 및 ` \[ `는 가 아닙니다 .
일치:         ^^ ^^ ^^	
( ) 기타 일반적인 문자 범위는 다음 A-Z과 같습니다.0-9

실제로 시도해 보고 몇 가지 문제를 해결해 보겠습니다.

0-916진수에는 문자뿐만 아니라 숫자도 포함될 수 있습니다 A-F. 색상을 지정하는 데 사용되는 경우 16진수 코드는 최대 3자를 포함할 수 있습니다. 아래 목록에서 유효한 16진수 코드를 찾으려면 정규 표현식을 만드세요.
무늬:
문자열: 1H8 4E2 8FF 0P1 T8B 776 42B G12
일치 항목:      ^^^ ^^^ ^^^ ^^^	
( 해결 방법y ) 문자 범위를 사용하여 아래 문장에서 소문자 자음(모음 제외)만 선택하는 정규식을 만듭니다 .
무늬:string 
: 쇼핑몰 완전 , 완전 높습니다 . _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
일치 항목:   ^ ^ ^^^ ^ ^^ ^ ^^ ^ ^ ^ ^^^ ^ ^ ^^^ ^ ^^	
( 해결책 )

6단계: "not", 캐럿, 곡절, 캐럿... 기호^

RegEx: 정규식을 마스터하기 위한 20가지 간단한 단계.  파트 1 - 7실제로 이 기호에는 9000개 이상의 이름이 있습니다. :) 하지만 단순화를 위해 아마도 "not"에 초점을 맞추겠습니다. 마지막 문제에 대한 나의 해결책은 약간 깁니다. "모음을 제외한 전체 알파벳을 얻으세요."라고 말하는 데 17자가 필요했습니다. 물론 이 작업을 수행하는 더 쉬운 방법이 있습니다. "not" 기호를 사용 하면 패턴에 지정된 것과 일치 하지 않아야^ 하는 문자 및 문자 범위를 지정할 수 있습니다 . 위의 마지막 문제에 대한 더 간단한 해결책은 모음을 나타내지 않는 문자를 찾는 것입니다.
패턴 : [ ^ aeiou ] 문자열 
:   쇼핑몰 의 벽 완전히 , 완전히 높습니다 . _ _ _ _ _ _ _ _ _ _ _ _ 
일치 항목: ^^ ^^ ^^^^ ^^^^ ^^ ^^^ ^ ^^ ^ ^^^^^^ ^ ^^^^^ ^^^ 	
( ^ ) 대괄호 안의 가장 왼쪽 문자인 "not" 기호는 []정규식 엔진이 대괄호 안에 없는 문자 하나와 일치하도록 지시합니다. 이는 위의 정규 표현식이 문장 시작 부분의 모든 공백, 마침표 ., 쉼표 ,및 대문자와 도 일치함을 의미합니다. T이를 제외하려면 대괄호 안에 넣을 수도 있습니다.
패턴 : [ ^ aeiou . , T ] 문자열  
: 쇼핑몰 의 벽 완전히 , 완전히 높습니다 . _ _ _ _ _ _ _ _ _ _ _ _ 
일치 항목:   ^ ^ ^^^ ^ ^^ ^ ^^ ^ ^ ^ ^^^ ^ ^ ^^^ ^ ^^	
( ) 메모이 경우 이전에 대괄호를 사용하지 않고 마침표를 찾을 때처럼 백슬래시를 사용하여 마침표를 벗어날 필요가 없습니다. 대괄호 안의 많은 특수 문자는 문자 그대로 처리됩니다. 여기에는 여는 괄호 문자는 포함되지만 [닫는 괄호 ]문자는 포함되지 않습니다(이유를 추측할 수 있습니까?). 백슬래시 문자 \도 문자 그대로 해석되지 않습니다. 대괄호를 사용하여 리터럴 백슬래시를 일치시키려면 \앞에 다음 백슬래시를 붙여 이스케이프해야 합니다 \\. 이 동작은 일치를 위해 공백 문자를 대괄호 안에 넣을 수도 있도록 설계되었습니다.
패턴: [\t]
문자열: tttt
일치:   ^ ^ ^
( ) "not" 기호는 ^범위에도 사용할 수 있습니다. a, b, c, x및 문자만 캡처하려면 다음과 같이 할 수 있습니다 y.z
패턴: [abcxyz] 
문자열:   abc defghijklmnopqrstuvw xyz 
일치: ^^^ ^^^
( ) ...또는 다음 사이에 없는 문자를 찾도록 지정할 수 있습니다 . dw
패턴: [^dw] 
문자열:   abc defghijklmnopqrstuvw xyz 
일치: ^^^ ^^^
( ) 그러나,조심하세요"아니요"로 ^. "글쎄, 내가 지정했으니 까 뒤에 소문자나 다른 것이 [^ b-f]나와야 한다고 생각하기 쉽습니다 . 그렇지 않습니다. 이 정규식은 문자, 숫자, 구두점 및 공백을 포함하여 해당 범위에 없는 모든 문자와 일치합니다. af
패턴: [^dw] 
문자열:   abc defg h . i , j - klmnopqrstuvw xyz 
일치: ^^^ ^ ^ ^ ^ ^^^
( )

레벨업 작업:

^아래에서 다음으로 끝나지 않는 모든 단어를 일치시키려면 대괄호 안에 "not" 기호를 사용하세요 y.
무늬:
문자열: day dog ​​hog hay bog bay ray rub 
일치:      ^^^ ^^^ ^^^ ^^^	
( 해결 방법 ) 범위와 "not" 기호를 사용하여 ^1977년부터 1982년(포함) 사이의 모든 연도를 찾는 정규식을 작성하세요.
무늬:
문자열: 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984
일치 항목:            ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^
( 해결 방법 ) "not" 기호 문자가 아닌 모든 문자를 찾는 정규식을 작성하십시오 ^.
무늬:
문자열:   abc1 ^ 23*() 
일치: ^^^^ ^^^^^	
( 해결책 )

7단계: 문자 클래스

문자 클래스는 문자 범위보다 훨씬 간단합니다. 정규식 엔진마다 사용 가능한 클래스가 다르므로 여기서는 주요 클래스만 다루겠습니다. (사용 중인 정규식 버전이 더 많거나 여기에 표시된 것과 다를 수 있으므로 사용 중인 정규식 버전을 확인하세요.) 문자 클래스는 범위와 거의 유사하게 작동하지만 '시작' 및 '끝' 값을 지정할 수 없습니다.
수업 기호
\d "숫자"[0-9]
\w "단어 기호"[A-Za-z0-9_]
\s "공백"[ \t\r\n\f]
"단어" 문자 클래스는 \w다양한 프로그래밍 언어에서 유효한 식별자(변수 이름, 함수 이름 등)에 이 문자 집합이 필요한 경우가 많기 때문에 특히 유용합니다. \w이전에 본 정규식을 단순화하는 데 사용할 수 있습니다 .
패턴: \\[az] 
문자열: ` \n `, ` \r `, ` \t ` 및 ` \f ` 는 공백 문자 ` \ 입니다 . `, ` \\ ` 및 ` \[ `는 가 아닙니다 .
일치:   ^^ ^^ ^^ ^^	
이를 사용하면 \w다음과 같이 작성할 수 있습니다.
패턴: \\\w 
문자열: ` \n `, ` \r `, ` \t ` 및 ` \f ` 는 공백 문자 ` \ 입니다 . `, ` \\ ` 및 ` \[ `는 가 아닙니다 .
일치:   ^^ ^^ ^^ ^^	
( )

행운을 위한 2가지 과제:

여러분과 제가 알고 있듯이 Java에서 식별자(변수, 클래스, 함수 등의 이름)는 문자 a- zA- Z, 달러 기호 $또는 밑줄 로만 시작할 수 있습니다 _. ( 밑줄은 물론 나쁜 스타일이지만 컴파일러는 이를 건너뜁니다. 번역가의 메모 ). 나머지 문자는 "단어" 문자여야 합니다 \w. 하나 이상의 문자 클래스를 사용하여 다음 세 문자 시퀀스 중에서 유효한 Java 식별자를 검색하는 정규식을 만듭니다.
무늬:
문자열:   __e $12 .x2 foo 바 3mm
일치 항목: ^^^ ^^^ ^^^ ^^^	
( 해결 방법 ) 미국 사회보장번호(SSN)는 XXX-XX-XXXX 형식의 9자리 숫자입니다. 여기서 각 X는 임의의 숫자일 수 있습니다 [0-9]. 하나 이상의 문자 클래스를 사용하여 정규식을 작성하여 아래 목록에서 올바른 형식의 SSN을 찾으십시오.
무늬:
문자열: 113-25=1902 182-82-0192 H23-_3-9982 1I1-O0-E38B
일치:              ^^^^^^^^^^^^^
( 솔루션 ) RegEx: 정규식을 마스터하기 위한 20가지 간단한 단계. 2부. 정규식을 익히는 20가지 간단한 단계. 파트 3. RegEx: 정규식을 익히는 20가지 간단한 단계. 4부.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION