정규식(regex)은 검색 패턴을 정의하는 일련의 문자입니다. 정규식을 작성하는 방법은 다음과 같습니다.
- ., *, +, ? 등과 같이 정규식에 사용되는 특수 문자를 이해하는 것부터 시작하세요.
- Python, Perl, grep 등 정규 표현식을 지원하는 프로그래밍 언어나 도구를 선택하세요.
- 특수 문자와 리터럴 문자를 사용하여 패턴을 작성합니다.
- 적절한 함수나 방법을 사용하여 문자열에서 패턴을 검색하세요.
예:
- 일련의 리터럴 문자를 일치시키려면 해당 문자를 패턴에 작성하면 됩니다.
- 여러 가능성 중 단일 문자를 일치시키려면 대괄호를 사용하세요. [0123456789]는 모든 숫자와 일치합니다.
- 0개 이상의 이전 표현식 항목을 일치시키려면 별표(*) 기호를 사용하십시오.
- 하나 이상의 이전 표현식과 일치시키려면 더하기(+) 기호를 사용하십시오.
- 정규식은 복잡하고 읽기 어려울 수 있으므로 정규식 테스터와 같은 도구를 사용하여 패턴을 디버깅하고 최적화하는 것이 좋습니다.
정규식(합리식이라고도 함)은 주로 문자열과의 패턴 일치 또는 문자열 일치(예: 유사한 작업 찾기 및 바꾸기)에 사용하기 위한 검색 패턴을 정의하는 문자 시퀀스입니다. 정규식은 패턴을 문자 시퀀스와 일치시키는 일반화된 방법입니다. C++, Java, Python과 같은 모든 프로그래밍 언어에서 사용됩니다.
정규 표현식이란 무엇이고 그것이 왜 그렇게 중요한가요?
정규식은 다음에서 사용됩니다. 구글애널리틱스 Sublime, Notepad++, Brackets, Google Docs 및 Microsoft Word와 같은 가장 널리 사용되는 편집기에서 검색 및 교체를 지원하는 URL 일치 기능을 제공합니다.
Example : Regular expression for an email address : ^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$> 위의 정규 표현식은 주어진 문자 집합이 이메일 주소인지 여부를 확인하는 데 사용할 수 있습니다.
정규식을 작성하는 방법은 무엇입니까?
아래에 언급된 것처럼 정규식을 작성하는 데 사용되는 특정 요소가 있습니다.
1. 반복기( *, + 및 { } )
이러한 기호는 반복자 역할을 하며 컴퓨터에 선행 문자가 한 번 이상 사용되어야 함을 알려줍니다.
2. 별표 기호( * )
이는 컴퓨터에게 선행 문자(또는 문자 집합)를 0회 이상(무한대까지) 일치시키도록 지시합니다.
Example : The regular expression ab*c will give ac, abc, abbc, abbbc….and so on>
3. 더하기 기호( + )
이는 컴퓨터에게 선행 문자(또는 문자 집합)를 적어도 한 번 이상(무한까지) 반복하도록 지시합니다.
알파 베타 가지치기 예
Example : The regular expression ab+c will give abc, abbc, abbbc, … and so on.>
4. 중괄호 { … }
이 괄호 안의 값만큼 앞의 문자(또는 문자 집합)를 반복하도록 컴퓨터에 지시합니다.
Example : {2} means that the preceding character is to be repeated 2 times, {min,} means the preceding character is matches min or more times. {min,max} means that the preceding character is repeated at least min & at most max times.> 5. 와일드카드( . )
도트 기호는 다른 기호를 대신할 수 있으므로 와일드카드 문자라고 합니다.
Example : The Regular expression .* will tell the computer that any character can be used any number of times.>
6. 선택문자( ? )
이 기호는 일치하는 문자열에 선행 문자가 존재할 수도 있고 존재하지 않을 수도 있음을 컴퓨터에 알려줍니다.
Example : We may write the format for document file as – docx? The ‘?’ tells the computer that x may or may not be present in the name of file format.>
7. 캐럿( ^ ) 기호 ( 경기 위치 설정 )
캐럿 기호는 일치 항목이 문자열이나 줄의 시작 부분에서 시작되어야 함을 컴퓨터에 알려줍니다.
Example : ^d{3} will match with patterns like '901' in '901-333-'.> 8. 달러( $ ) 기호
이는 문자열 끝이나 줄이나 문자열 끝의 이전에 일치 항목이 발생해야 함을 컴퓨터에 알려줍니다.
Example : -d{3}$ will match with patterns like '-333' in '-901-333'.> 9. 캐릭터 클래스
문자 클래스는 문자 집합 중 하나와 일치합니다. 문자, 숫자, 공백, 기호 등과 같은 언어의 가장 기본적인 요소를 일치시키는 데 사용됩니다.
에스 : 공백 및 탭과 같은 공백 문자와 일치합니다.
에스 : 공백이 아닌 모든 문자와 일치합니다.
디 : 모든 숫자 문자와 일치합니다.
디: 숫자가 아닌 문자와 일치합니다.
안에 : 모든 단어 문자와 일치합니다(기본적으로 영숫자).
안에 : 단어가 아닌 문자와 일치합니다.
비 : 모든 단어 경계와 일치합니다(여기에는 공백, 대시, 쉼표, 세미콜론 등이 포함됩니다.
[문자 집합]: set_of_characters의 단일 문자와 일치합니다. 기본적으로 일치 항목은 대소문자를 구분합니다.
Example : [abc] will match characters a,b and c in any string.>
10. [^set_of_characters] 부정:
set_of_characters에 없는 단일 문자와 일치합니다. 기본적으로 일치 항목은 대소문자를 구분합니다.
Example : [^abc] will match any character except a,b,c .>
11. [이름-성] 문자 범위:
처음부터 마지막까지 범위의 단일 문자와 일치합니다.
Example : [a-zA-z] will match any character from a to z or A to Z.>
12. 탈출 기호( )
실제 '+', '.' 등의 문자를 일치시키려면 해당 문자 앞에 백슬래시( )를 추가하세요. 이는 컴퓨터에게 다음 문자를 검색 문자로 처리하고 이를 일치하는 패턴으로 간주하도록 지시합니다.
스윙이 있는 자바
Example : d+[+-x*]d+ will match patterns like '2+2' and '3*9' in '(2+2) * 3*9'.>
13. 캐릭터 그룹화 ( )
정규식의 다양한 기호 집합을 그룹화하여 단일 단위로 작동하고 블록으로 동작할 수 있습니다. 이를 위해서는 정규식을 괄호( )로 묶어야 합니다.
Example : ([A-Z]w+) contains two different elements of the regular expression combined together. This expression will match any pattern containing uppercase letter followed by any character.>
14. 세로 막대( | )
세로 막대(|) 문자로 구분된 하나의 요소와 일치합니다.
Example : th(e|is|at) will match words - the, this and that.>
15. 번호
역참조: 이전에 일치된 하위 표현식(캡처되거나 원형 괄호로 묶인 표현식)을 동일한 정규 표현식에서 나중에 식별할 수 있습니다. 은 n번째 괄호 안에 포함된 그룹이 현재 위치에서 반복됨을 의미합니다.
Example : ([a-z])1 will match ee in Geek because the character at second position is same as character at position 1 of the match.>
16. 어떻게 ( ?# 코멘트 )
인라인 주석: 주석은 첫 번째 닫는 괄호에서 끝납니다.
Example : A(?#This is an inline comment)w+>
17. # [줄 끝까지]
X 모드 코멘트. 주석은 이스케이프되지 않은 #에서 시작하여 줄 끝까지 계속됩니다.
Example : (?x)Aw+#Matches words starting with A>