PHP-정규식
정규식은 문자 그 자체의 시퀀스 또는 패턴에 지나지 않습니다. 패턴 일치 기능의 기초를 제공합니다.
정규식을 사용하면 다른 문자열 내에서 특정 문자열을 검색 할 수 있으며 한 문자열을 다른 문자열로 대체 할 수 있으며 문자열을 여러 청크로 분할 할 수 있습니다.
PHP는 각각 특정 유형의 정규식에 해당하는 두 세트의 정규식 함수에 특정한 함수를 제공합니다. 당신의 편안함에 따라 그들 중 하나를 사용할 수 있습니다.
- POSIX 정규식
- PERL 스타일 정규식
POSIX 정규식
POSIX 정규식의 구조는 일반적인 산술 식의 구조와 다르지 않습니다. 다양한 요소 (연산자)가 결합되어 더 복잡한 식을 형성합니다.
가장 간단한 정규식은 g, haggle 또는 bag과 같은 문자열 내부에서 g와 같은 단일 문자와 일치하는 정규식입니다.
POSIX 정규식에서 사용되는 몇 가지 개념에 대해 설명하겠습니다. 그 후 정규식 관련 함수를 소개합니다.
브래킷
대괄호 ([])는 정규식 컨텍스트에서 사용할 때 특별한 의미를 갖습니다. 문자 범위를 찾는 데 사용됩니다.
Sr. 아니요 | 표현 및 설명 |
---|---|
1 | [0-9] 0에서 9까지의 십진수와 일치합니다. |
2 | [a-z] 소문자 a에서 소문자 z까지의 모든 문자와 일치합니다. |
삼 | [A-Z] 대문자 A에서 대문자 Z까지의 모든 문자와 일치합니다. |
4 | [a-Z] 소문자 a에서 대문자 Z까지의 모든 문자와 일치합니다. |
위에 표시된 범위는 일반적입니다. 또한 [0-3] 범위를 사용하여 0에서 3까지의 십진수를 일치 시키거나 [bv] 범위를 사용하여 b에서 v까지의 소문자와 일치시킬 수 있습니다.
수량 자
괄호 문자 시퀀스 및 단일 문자의 빈도 또는 위치는 특수 문자로 표시 할 수 있습니다. 특정 의미를 가진 각 특수 문자. +, *,?, {int. range} 및 $ 플래그는 모두 문자 시퀀스를 따릅니다.
Sr. 아니요 | 표현 및 설명 |
---|---|
1 | p+ 적어도 하나의 p를 포함하는 모든 문자열과 일치합니다. |
2 | p* 0 개 이상의 p를 포함하는 모든 문자열과 일치합니다. |
삼 | p? 0 또는 1 개의 p를 포함하는 모든 문자열과 일치합니다. |
4 | p{N} 시퀀스를 포함하는 모든 문자열과 일치합니다. N 추신 |
5 | p{2,3} 2 개 또는 3 개의 p 시퀀스를 포함하는 모든 문자열과 일치합니다. |
6 | p{2, } 최소 두 개의 p 시퀀스를 포함하는 모든 문자열과 일치합니다. |
7 | p$ 끝에 p가있는 문자열과 일치합니다. |
8 | ^피 시작 부분에 p가있는 모든 문자열과 일치합니다. |
예
다음 예는 일치하는 문자에 대한 개념을 명확하게합니다.
Sr. 아니요 | 표현 및 설명 |
---|---|
1 | [^a-zA-Z] a-z 및 A-Z 범위의 문자를 포함하지 않는 모든 문자열과 일치합니다. |
2 | p.p p, 임의의 문자, 차례로 다른 p를 포함하는 문자열과 일치합니다. |
삼 | ^.{2}$ 정확히 두 문자를 포함하는 모든 문자열과 일치합니다. |
4 | <b>(.*)</b> <b> 및 </ b>로 묶인 모든 문자열과 일치합니다. |
5 | p(hp)* ap 다음에 시퀀스 php의 0 개 이상의 인스턴스가 오는 문자열과 일치합니다. |
미리 정의 된 문자 범위
프로그래밍 편의를 위해 문자 클래스라고도하는 사전 정의 된 여러 문자 범위를 사용할 수 있습니다. 문자 클래스는 전체 문자 범위를 지정합니다 (예 : 알파벳 또는 정수 세트).
Sr. 아니요 | 표현 및 설명 |
---|---|
1 | [[:alpha:]] 영문자 aA-zZ를 포함하는 모든 문자열과 일치합니다. |
2 | [[:digit:]] 0에서 9까지의 숫자를 포함하는 모든 문자열과 일치합니다. |
삼 | [[:alnum:]] 영숫자 aA ~ zZ 및 0 ~ 9를 포함하는 모든 문자열과 일치합니다. |
4 | [[:space:]] 공백을 포함하는 모든 문자열과 일치합니다. |
PHP의 Regexp POSIX 함수
PHP는 현재 POSIX 스타일의 정규 표현식을 사용하여 문자열을 검색하는 7 가지 기능을 제공합니다.
Sr. 아니요 | 기능 및 설명 |
---|---|
1 | ereg () ereg () 함수는 string으로 지정된 문자열에서 pattern으로 지정된 문자열을 검색하여 패턴이 발견되면 true를 반환하고 그렇지 않으면 false를 반환합니다. |
2 | ereg_replace () ereg_replace () 함수는 패턴으로 지정된 문자열을 검색하고 패턴이 발견되면 대체로 대체합니다. |
삼 | 에레 기 () eregi () 함수는 패턴으로 지정된 문자열에서 문자열로 지정된 문자열을 검색합니다. 검색은 대소 문자를 구분하지 않습니다. |
4 | eregi_replace () eregi_replace () 함수는 문자열의 패턴 검색이 대소 문자를 구분하지 않는다는 점을 제외하면 ereg_replace ()와 똑같이 작동합니다. |
5 | 스플릿() split () 함수는 문자열에서 패턴의 발생에 따라 각 요소의 경계인 다양한 요소로 문자열을 나눕니다. |
6 | spliti () spliti () 함수는 대소 문자를 구분하지 않는다는 점을 제외하면 형제 split ()과 동일한 방식으로 작동합니다. |
7 | sql_regcase () sql_regcase () 함수는 입력 매개 변수 문자열의 각 문자를 두 문자를 포함하는 대괄호 표현식으로 변환하는 유틸리티 함수로 생각할 수 있습니다. |
PERL 스타일 정규식
Perl 스타일의 정규식은 POSIX 대응과 유사합니다. POSIX 구문은 Perl 스타일 정규식 함수와 거의 같은 의미로 사용할 수 있습니다. 실제로 이전 POSIX 섹션에서 소개 한 수량자를 사용할 수 있습니다.
PERL 정규식에서 사용되는 몇 가지 개념에 대해 설명하겠습니다. 그 후 정규식 관련 함수를 소개합니다.
메타 문자
메타 문자는 조합에 특별한 의미를 부여하는 역할을하는 백 슬래시가 앞에 오는 단순히 알파벳 문자입니다.
예를 들어 '\ d'메타 문자를 사용하여 큰 금액을 검색 할 수 있습니다. /([\d]+)000/, 여기 \d 숫자 문자열을 검색합니다.
다음은 PERL 스타일 정규식에서 사용할 수있는 메타 문자 목록입니다.
Character Description
. a single character
\s a whitespace character (space, tab, newline)
\S non-whitespace character
\d a digit (0-9)
\D a non-digit
\w a word character (a-z, A-Z, 0-9, _)
\W a non-word character
[aeiou] matches a single character in the given set
[^aeiou] matches a single character outside the given set
(foo|bar|baz) matches any of the alternatives specified
수정 자
대소 문자 구분, 여러 줄 검색 등과 같이 정규 표현식 작업을 훨씬 쉽게 할 수있는 몇 가지 수정자를 사용할 수 있습니다.
Modifier Description
i Makes the match case insensitive
m Specifies that if the string has newline or carriage
return characters, the ^ and $ operators will now
match against a newline boundary, instead of a
string boundary
o Evaluates the expression only once
s Allows use of . to match a newline character
x Allows you to use white space in the expression for clarity
g Globally finds all matches
cg Allows a search to continue even after a global match fails
PHP의 Regexp PERL 호환 기능
PHP는 Perl 호환 정규 표현식을 사용하여 문자열을 검색하기 위해 다음과 같은 기능을 제공합니다.
Sr. 아니요 | 기능 및 설명 |
---|---|
1 | preg_match () preg_match () 함수는 문자열에서 패턴을 검색하여 패턴이 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다. |
2 | preg_match_all () preg_match_all () 함수는 string의 모든 패턴과 일치합니다. |
삼 | preg_replace () preg_replace () 함수는 패턴 및 대체 입력 매개 변수에서 정규식을 사용할 수 있다는 점을 제외하면 ereg_replace ()와 동일하게 작동합니다. |
4 | preg_split () preg_split () 함수는 정규식이 패턴의 입력 매개 변수로 허용된다는 점을 제외하면 split ()과 똑같이 작동합니다. |
5 | preg_grep () preg_grep () 함수는 input_array의 모든 요소를 검색하여 regexp 패턴과 일치하는 모든 요소를 반환합니다. |
6 | preg_ quote () 정규식 문자 인용 |