PHP 정규 표현 식 완전 튜 토리 얼 의 기본 편

현재 정규 표현 식 은 이미 많은 소프트웨어 에서 광범 위 하 게 응용 되 고 있다.*nix(Linux,Unix 등),HP 등 운영 체제,PHP,C\#,Java 등 개발 환경 과 많은 응용 프로그램 에서 정규 표현 식 의 그림 자 를 볼 수 있다.
정규 표현 식 의 사용 은 간단 한 방법 으로 강력 한 기능 을 실현 할 수 있다.
간단 하고 효과 적 이 며 강력 함 을 잃 지 않 기 위해 정규 표현 식 코드 의 난이도 가 높 고 학습 도 쉽 지 않다.
예:^.+@.+..+$
이런 코드 는 일찍이 여러 차례 나 자신 을 놀 라 물 러 나 게 한 적 이 있다.많은 사람들 이 이런 코드 에 놀 라 서 도 망 갔 나 봐 요.
본 튜 토리 얼 을 다 배우 면 너 도 이런 코드 를 자 유 롭 게 응용 할 수 있 을 것 이다.
정규 표현 식 의 역사
정규 표현 식 의'조상'은 인류 신경 계 가 어떻게 일 하 는 지 에 대한 초기 연구 로 거 슬러 올 라 갈 수 있다.Warren McCulloch 와 Walter Pitts 두 신경 생리학 자 는 이러한 신경 망 을 묘사 하 는 수학 방식 을 연구 했다.
1956 년 Stephen Kleene 이라는 수학자 가 McCulloch 와 Pitts 초기 작업 을 바탕 으로'신경 망 사건 의 표현법'이라는 제목 의 논문 을 발표 해 정규 표현 식 개념 을 도입 했다.정규 표현 식 은 그 가'정규 집합의 대수'라 고 부 르 는 표현 식 을 묘사 하 는 데 사용 되 기 때문에'정규 표현 식'이라는 용 어 를 사용한다.
그 다음 에 이 작업 을 Ken Thompson 의 계산 검색 알고리즘 을 사용 하 는 초기 연구 에 응용 할 수 있 음 을 발견 했다.Ken Thompson 은 Unix 의 주요 발명자 이다.정규 표현 식 의 첫 번 째 실 용 프로그램 은 유 닉 스 의 qed 편집기 입 니 다. 
그때 부터 지금까지 정규 표현 식 은 텍스트 기반 편집기 와 검색 도구 의 중요 한 부분 입 니 다.
정규 표현 식(regular expression)은 문자열 이 일치 하 는 패턴 을 설명 합 니 다.피 드 문자열 이 있 는 지,일치 하 는 하위 문자열 을 교체 하거나 특정한 조건 에 맞 는 하위 문자열 을 꺼 내 는 지 확인 할 수 있 습 니 다.
이 절 에서 우 리 는 정규 표현 식 의 정 의 를 소개 합 니 다.
정규 표현 식(regular expression)은 문자열 이 일치 하 는 패턴 을 설명 합 니 다.피 드 문자열 이 있 는 지,일치 하 는 하위 문자열 을 교체 하거나 특정한 조건 에 맞 는 하위 문자열 을 꺼 내 는 지 확인 할 수 있 습 니 다.
디 렉 터 리 를 열 때 dir*.txt 또는 ls*.txt 의*.txt 는 정규 표현 식 이 아 닙 니 다.여기*정규 식*과 의미 가 다 르 기 때 문 입 니 다.
정규 표현 식 은 일반 문자(예 를 들 어 문자 a 에서 z)와 특수 문자(메타 문자 라 고 함)로 구 성 된 문자 모드 입 니 다.정규 표현 식 은 템 플 릿 으로 검색 한 문자열 과 일치 합 니 다.
1.일반 문자
원 문자 로 지정 되 지 않 은 모든 인쇄 와 비 인쇄 문자 로 구성 되 어 있 습 니 다.이것 은 모든 대문자 와 소문 자 문자,모든 숫자,모든 문장 부호 와 일부 기 호 를 포함한다.
 2.인쇄 되 지 않 은 문자
문자 의미
cx 는 x 가 가리 키 는 제어 문자 와 일치 합 니 다.예 를 들 어 cM 은 control-M 또는 리 턴 문자 와 일치 합 니 다.x 의 값 은 A-Z 또는 a-z 중 하나 여야 합 니 다.그렇지 않 으 면 c 를 원래 의'c'문자 로 간주 합 니 다.
f.페이지 바 꾸 기 문자 와 일치 합 니 다.x0c 와 cL 에 등가 하 다.
줄 바 꿈 문자x0a 와 cJ 에 등가 하 다.
r.리 턴 문자 와 일치 합 니 다.x0d 와 cM 에 등가 하 다.
s 는 빈 칸,탭 문자,페이지 바 꾸 기 등 모든 공백 문자 와 일치 합 니 다.등가
S 는 공백 문자 가 아 닌 모든 문자 와 일치 합 니 다.등가
t.탭 문자 와 일치 합 니 다.등가 x09 와 cI.
v.수직 탭 문자 와 일치 합 니 다.x0b 와 cK 와 같다.
3.특수 문자
특수 문자 란 위 에서 말 한'*.txt'중의*와 같은 특수 한 의 미 를 가 진 문자 입 니 다.쉽게 말 하면 모든 문자열 의 뜻 을 나타 내 는 것 입 니 다.파일 이름 에*가 있 는 파일 을 찾 으 려 면*에 대한 전의 가 필요 하 다.즉,그 앞 에 하 나 를 더 해 야 한다.ls *.txt。정규 표현 식 에는 다음 과 같은 특수 문자 가 있 습 니 다.
특별 문자 설명
$입력 문자열 의 끝 위치 와 일치 합 니 다.RegExp 대상 의 Multiline 속성 을 설정 하면$도'n'또는'r'와 일치 합 니 다.$문자 자체 와 일치 하려 면$를 사용 하 십시오.
()키 표현 식 의 시작 과 끝 위 치 를 표시 합 니 다.하위 표현 식 은 나중에 사용 할 수 있 도록 가 져 올 수 있 습 니 다.이 문자 들 과 일치 하려 면 사용 하 십시오.
*앞의 하위 표현 식 과 0 번 또는 여러 번 일치 합 니 다.*문자 와 일치 하려 면*를 사용 하 십시오.
+앞의 하위 표현 식 과 한 번 또는 여러 번 일치 합 니 다.+문자 와 일치 하려 면+를 사용 하 십시오.
줄 바 꿈 문자 n 을 제외 한 모든 문자 와 일치 합 니 다.일치 하려 면..사용 하 세 요.
[괄호 식 의 시작 을 표시 합 니 다.일치 하려 면[,[를 사용 하 세 요.
? 앞의 하위 표현 식 과 0 번 또는 한 번 일치 하거나 탐욕 이 아 닌 한정 자 를 가 리 킵 니 다.일치 해 야 합 니까?문자
다음 문 자 를 특수 문자 나 원 의 문자 로 표시 하거나 뒤로 참조 하거나 8 진 전의 문자 로 표시 합 니 다.예 를 들 어'n'일치 문자'n'.n.줄 바 꿈 문자 와 일치 합 니 다.시퀀스'일치','('일치'(').
^입력 문자열 의 시작 위치 와 일치 합 니 다.괄호 식 에서 사용 하지 않 는 한 이 문자 집합 을 받 아들 이지 않 음 을 표시 합 니 다.^문자 자체 와 일치 하려 면^를 사용 하 십시오.
{한정 문자 표현 식 의 시작 을 표시 합 니 다.{와 일치 하려 면{를 사용 하 십시오.
|두 가지 선택 을 가리킨다.일치 하려 면|을 사용 하 십시오.
정규 표현 식 을 만 드 는 방법 은 수학 표현 식 을 만 드 는 방법 과 같다.즉,여러 개의 메타 문자 와 조작 문자 로 작은 표현 식 을 결합 하여 더 큰 표현 식 을 만 드 는 것 이다.정규 표현 식 의 구성 요 소 는 하나의 문자,문자 집합,문자 범위,문자 간 의 선택 또는 모든 구성 요소 의 임 의 조합 일 수 있 습 니 다.
4.한정 부적
정규 표현 식 을 지정 하 는 데 사용 할 지정 한 구성 요 소 는 몇 번 이나 나타 나 야 일치 하 는 지 를 만족 시 킬 수 있 습 니 다.*또는+또는?또는{n}또는{n,}또는{n,m}모두 6 가지 입 니 다.
*,+와?한정 부 는 모두 탐욕 적 이다.왜냐하면 그들 은 가능 한 한 많은 일치 하 는 문 자 를 그들의 뒤에 만 추가 할 수 있 기 때문이다.비 탐욕 이나 최소 매 칭 을 실현 할 수 있다.
정규 표현 식 의 한정 문자:
문자 설명
*앞의 하위 표현 식 과 0 번 또는 여러 번 일치 합 니 다.예 를 들 어 zo*는'z'와'zoo'와 일치 할 수 있 습 니 다.*등가{0,}.
+앞의 하위 표현 식 과 한 번 또는 여러 번 일치 합 니 다.예 를 들 어'zo+'는'zo'와'zoo'와 일치 하지만'z'와 일치 하지 않 습 니 다.+등가{1,}.
? 앞의 하위 표현 식 과 0 번 또는 한 번 일치 합 니 다.예 를 들 어'도(es)?'"do"또는"does"의"do"와 일치 할 수 있 습 니 다.?등가{0,1}.
{n}n 은 부정 정수 입 니 다.정확 한 n 회 일치 합 니 다.예 를 들 어'o{2}'는'Bob'의'o'와 일치 할 수 없 지만'food'의 두 o 와 일치 할 수 있 습 니 다.
{n,}n 은 부정 정수 입 니 다.최소 n 회 일치 합 니 다.예 를 들 어'o{2,}'는'Bob'의'o'와 일치 할 수 없 지만'fooood'의 모든 o 와 일치 할 수 있 습 니 다.o{1,}'등가
'o+'。'o{0,}은'o*'와 같 습 니 다.
{n,m}m 와 n 은 모두 마이너스 정수 이 며,그 중 n<=m 이다.최소 n 회 일치 하고 최대 m 회 일치 합 니 다.예 를 들 어'o{1,3}'은'foooood'의 세 번 째 o 와 일치 합 니 다.o{0,1}'는'o?'와 같 습 니 다.쉼표 와 두 숫자 사이 에 빈 칸 이 있어 서 는 안 된다 는 것 을 주의 하 세 요.
5.포 지 셔 닝 문자
문자열 이나 단어의 경 계 를 설명 하 는 데 사 용 됩 니 다.^와$는 문자열 의 시작 과 끝 을 말 합 니 다.b 는 단어의 앞 이나 뒤 경 계 를 설명 하고 B 는 단어 가 아 닌 경 계 를 표시 합 니 다.포 지 셔 닝 부적 에 한정 부적 을 사용 할 수 없습니다.
6.선택
모든 선택 항목 을 괄호 로 묶 고 인접 한 선택 항목 사 이 를|으로 구분 합 니 다.그러나 괄호 를 사용 하면 부작용 이 있 습 니 다.일치 하 는 일치 가 캐 시 됩 니 다.이 때 사용 할 수 있 습 니까?:이런 부작용 을 없 애기 위해 첫 번 째 옵션 을 놓 으 세 요.
그 중?:비 포획 원 중 하나,그리고 비 포획 원 두 개 는?=와?!이 두 가 지 는 더 많은 의미 가 있 습 니 다.전 자 는 정방 향 사전 검 사 를 위해 괄호 안의 정규 표현 식 모드 와 일치 하 는 위치 에서 검색 문자열 과 일치 합 니 다.후 자 는 마이너스 사전 검 사 를 시작 합 니 다.이 정규 표현 식 모드 와 일치 하지 않 는 위치 에서 검색 문자열 과 일치 합 니 다.
7.후방 인용
정규 표현 식 모드 나 일부 모드 양쪽 에 괄호 를 추가 하면 관련 매 칭 을 임시 버퍼 에 저장 합 니 다.포 획 된 모든 하위 매 칭 은 정규 표현 식 모드 에서 왼쪽 에서 오른쪽으로 만 나 는 내용 에 따라 저 장 됩 니 다.하위 와 일치 하 는 버퍼 번 호 를 1 부터 최대 99 개의 표현 식 까지 연속 으로 저장 합 니 다.모든 버퍼 는'n'을 사용 할 수 있 습 니 다.그 중에서 n 은 특정한 버퍼 의 한 자리 또는 두 자리 10 진수 입 니 다.
비 포획 문자'?:','?='를 사용 할 수 있 습 니 다.or '?!' 일치 하 는 저장 을 무시 합 니 다.
본 논문 의 내용 은 여기 서 끝 났 습 니 다.위 에서 공유 한 phop 정규 표현 식 은 매우 사용 되 고 있 으 며,추 후 정규 표현 식 향상 편 도 업데이트 할 것 이 니 지속 적 으로 관심 을 가 져 주 십시오.

좋은 웹페이지 즐겨찾기