정규 표현식
예

특정 문법 규칙은 사용 중인 특정 구현체, 프로그래밍 언어, 라이브러리에 따라 다양하다. 또한 정규 표현식 구현체들의 기능은 소프트웨어 버전 간에도 다를 수 있다.
정규 표현식들은 예제 없이 설명과 이해를 동시에 하는 것은 어려울 수 있다. 아래에는 정규 표현식의 속성 중 일부의 기본적인 설명을 제시한다.
아래의 항목들은 예제에 사용된다.
메타문자 ;; 메타문자들의 열은 표현할 정규식을 지정한다.
   =~ m//          ;; 펄에서 문자열을 '일치'시키려는 동작을 지정한다.
   =~ s///         ;; 펄에서 문자열을 '대체'시키려는 동작을 지정한다.
이 예제들에 사용된 문법과 규칙들은 다른 프로그래밍 환경에서와 일치한다.
| 메타문자 | 설명 | 예시 |
| --- | --- | --- |
| . | 일반적으로 새 줄을 제외한 모든 어떠한 문자열과도 일치한다. | $string1 = "Hello World\n"; if ($string1 =~ m/...../) {   print "$string1 has length >= 5\n"; } 출력: Hello World  has length >= 5  |
| ( ) | 일련의 패턴 요소들을 하나의 요소로 묶는다.  괄호 안의 패턴을 일치시킬 때 $1, $2, ... 중 하나를 사용할 수 있다. | $string1 = "Hello World\n"; if ($string1 =~ m/(H..).(o..)/) {   print "We matched '$1' and '$2'\n"; } 출력:We matched 'Hel' and 'o W'  |
| + | 1번 이상 발생하는 패턴과 일치시킨다. | $string1 = "Hello World\n"; if ($string1 =~ m/l+/) {   print "There are one or more consecutive letter \"l\"'s in $string1\n"; } 출력:There are one or more consecutive letter "l"'s in Hello World  |
| ? | 0~1번 발생하는 패턴과 일치시킨다. | $string1 = "Hello World\n"; if ($string1 =~ m/H.?e/) {   print "There is an 'H' and a 'e' separated by ";   print "0-1 characters (Ex: He Hoe)\n"; } 출력:There is an 'H' and a 'e' separated by 0-1 characters (Ex: He Hoe)  |
| ? |  | $string1 = "Hello World\n"; if ($string1 =~ m/(l.+?o)/) {   print "The non-greedy match with 'l' followed by one or\n";   print "more characters is 'llo' rather than 'llo Wo'.\n"; } 출력:The non-greedy match with 'l' followed by one or more characters is 'llo' rather than 'llo Wo'.  |
| * | 0번 이상 발생하는 패턴과 일치시킨다. | $string1 = "Hello World\n"; if ($string1 =~ m/el*o/) {   print "There is an 'e' followed by zero to many ";   print "'l' followed by 'o' (eo, elo, ello, elllo)\n"; } 출력:There is an 'e' followed by zero to many 'l' followed by 'o' (eo, elo, ello, elllo)  |
| {M,N} | 최소 M번, 최대 N번 발생되는 패턴과 일치시킨다. | $string1 = "Hello World\n"; if ($string1 =~ m/l{1,2}/) {  print "There exists a substring with at least 1 ";   print "and at most 2 l's in $string1\n"; } 출력:There exists a substring with at least 1 and at most 2 l's in Hello World  |
| [...] | 가능한 문자열의 집합과 일치시킨다. | $string1 = "Hello World\n"; if ($string1 =~ m/[aeiou]+/) {   print "$string1 contains one or more vowels.\n"; } 출력:Hello World  contains one or more vowels.  |
| | | 가능성 있는 항목들을 구별하여 선택한다. | $string1 = "Hello World\n"; if ($string1 =~ m/(Hello|Hi|Pogo)/) {   print "At least one of Hello, Hi, or Pogo is ";   print "contained in $string1.\n"; } 출력:At least one of Hello, Hi, or Pogo is contained in Hello World .  |
| \b |  | $string1 = "Hello World\n"; if ($string1 =~ m/llo\b/) {   print "There is a word that ends with 'llo'\n"; } 출력:There is a word that ends with 'llo'  |
| \w | "_"를 포함한 영숫자를 일치시킨다. | $string1 = "Hello World\n"; if ($string1 =~ m/\w/) {   print "There is at least one alphanumeric ";   print "character in $string1 (A-Z, a-z, 0-9, _)\n"; } 출력:There is at least one alphanumeric character in Hello World  (A-Z, a-z, 0-9, _)  |
| \W | "_"를 제외하여 영숫자가 아닌 문자열들과 일치시킨다. | $string1 = "Hello World\n"; if ($string1 =~ m/\W/) {   print "The space between Hello and ";   print "World is not alphanumeric\n"; } 출력:The space between Hello and World is not alphanumeric  |
| \s | 공백 문자와 일치시킨다. | $string1 = "Hello World\n"; if ($string1 =~ m/\s.*\s/) {   print "There are TWO whitespace characters, which may";   print " be separated by other characters, in $string1"; } 출력:There are TWO whitespace characters, which may be separated by other characters, in Hello World  |
| \S | 공백을 제외한 어떠한 것이든 일치시킨다. | $string1 = "Hello World\n"; if ($string1 =~ m/\S.*\S/) {   print "There are TWO non-whitespace characters, which";   print " may be separated by other characters, in $string1"; } 출력:There are TWO non-whitespace characters, which may be separated by other characters, in Hello World  |
| \d | 숫자를 일치시킨다. | $string1 = "99 bottles of beer on the wall."; if ($string1 =~ m/(\d+)/) {   print "$1 is the first number in '$string1'\n"; } 출력:99 is the first number in '99 bottles of beer on the wall.'  |
| \D | 숫자가 아닌 항목을 일치시킨다. | $string1 = "Hello World\n"; if ($string1 =~ m/\D/) {   print "There is at least one character in $string1";   print " that is not a digit.\n"; } 출력:There is at least one character in Hello World  that is not a digit.  |
| ^ | 줄이나 문자열의 시작점과 일치시킨다. | $string1 = "Hello World\n"; if ($string1 =~ m/^He/) {   print "$string1 starts with the characters 'He'\n"; } 출력:Hello World  starts with the characters 'He'  |
| $ | 줄이나 문자열의 끝과 일치시킨다. | $string1 = "Hello World\n"; if ($string1 =~ m/rld$/) {   print "$string1 is a line or string ";   print "that ends with 'rld'\n"; } 출력:Hello World  is a line or string that ends with 'rld'  |
| \A | 문자열의 시작점과 일치시킨다. (내부 줄이 아닌) | $string1 = "Hello\nWorld\n"; if ($string1 =~ m/\AH/) {   print "$string1 is a string ";   print "that starts with 'H'\n"; } 출력:Hello World  is a string that starts with 'H'  |
| \z | 문자열의 끝과 일치시킨다. (내부 줄이 아닌) | $string1 = "Hello\nWorld\n"; if ($string1 =~ m/d\n\z/) {   print "$string1 is a string ";   print "that ends with 'd\\n'\n"; } 출력:Hello World  is a string that ends with 'd\n'  |
| [^...] | 괄호 안의 항목을 제외한 모든 문자열과 일치시킨다. | $string1 = "Hello World\n"; if ($string1 =~ m/[^abc]/) {   print "$string1 contains a character other than ";   print "a, b, and c\n"; } 출력:Hello World  contains a character other than a, b, and c  |