php 정규 표현 식 완전 튜 토리 얼 의 정수 편

php 정규 표현 식 의 일부 예
정규 표현 식 설명
/b([a-z]+) 1b/gi  한 단어 가 연속 으로 나 오 는 위치.
/(w+)://([^/:]+)(:d*)?([^# ]*)/  URL 을 프로 토 콜,도 메 인,포트 및 상대 경로 로 해석 합 니 다.
/^(?:Chapter|Section) [1-9][0-9]{0,1}$/  장절 의 위 치 를 정 하 다
/[-a-z]/    A 부터 z 까지 모두 26 개의 자모 에-번 을 더 하 다.
/terb/    터미널 대신 chapter 와 일치 할 수 있 습 니 다.
/Bapt/    aptitude 대신 chapter 와 일치 합 니 다.
/Windows(?=95 |98 |NT )/   Windows 95 또는 Windows 98 또는 Windows NT 와 일치 할 수 있 습 니 다.일치 하 는 것 을 찾 으 면 Windows 뒤에서 부터 다음 을 진행 합 니 다.
이 절 은 phop 정규 표현 식 의 일치 규칙 을 소개 합 니 다.
1.기본 모드 일치
모든 것 은 가장 기본 적 인 것 부터 시작한다.패턴 은 정규 표현 식 의 가장 기본 적 인 요소 로 문자열 의 특징 을 설명 하 는 문자 입 니 다.패턴 은 간단 할 수도 있 고 일반적인 문자열 로 구성 할 수도 있 으 며 매우 복잡 할 수도 있 습 니 다.흔히 특수 한 문자 로 한 범위 안의 문 자 를 표시 하거나 중복 되 거나 문맥 을 표시 합 니 다.예 를 들 면:
   ^once
이 모드 는 once 로 시작 하 는 문자열 과 만 일치 하 는 특수 한 문 자 를 포함 하고 있 습 니 다.예 를 들 어 이 모드 는 문자열'once upon a time'과 일치 하 며'There once was a man from New York'과 일치 하지 않 습 니 다.^기호 가 시작 을 표시 하 는 것 처럼$기 호 는 주어진 패턴 으로 끝 나 는 문자열 과 일치 합 니 다.
   bucket$
이 모드 는"Who kept all of this cash in a bucket"과 일치 하 며"buckets"와 일치 하지 않 습 니 다.문자^와$를 동시에 사용 할 때 정확 한 일치(문자열 은 패턴 과 같 음)를 표시 합 니 다.예 를 들 면:
   ^bucket$
문자열'bucket'만 일치 합 니 다.만약 하나의 모드 가^와$를 포함 하지 않 는 다 면,이 모드 를 포함 하 는 모든 문자열 과 일치 합 니 다.모드
   once
문자열
   There once was a man from NewYork
   Who kept all of his cash in a bucket.
일치 합 니 다.
이 모드 에서 의 자모(o-n-c-e)는 글자 의 문자 이다.즉,그들 은 이 자모 자 체 를 나타 내 고 숫자 도 같다 는 것 이다.다른 약간 복잡 한 문자,예 를 들 어 문장 부호 와 백문 자(빈 칸,탭 문자 등)는 전의 서열 을 사용 해 야 한다.모든 전의 서열 은 역 슬 래 쉬()로 시작한다.탭 문자 의 전의 순 서 는 t 입 니 다.따라서 문자열 이 탭 문자 로 시작 되 는 지 확인 하려 면 이 모드 를 사용 하 십시오.
   ^t
유사 한 것 은 n 으로'신 행'을 표시 하고 r 는 차 로 돌아 가 는 것 을 나타 낸다.다른 특수 기 호 는 앞 에 역 슬 래 쉬 를 붙 일 수 있다.예 를 들 어 역 슬 래 쉬 자체 가'마침표'를 사용 하고'표시'를 사용 하여 유추 할 수 있다.
2.문자열
인터넷 프로그램 에서 정규 표현 식 은 사용자 의 입력 을 검증 하 는 데 사 용 됩 니 다.사용자 가 FORM 을 제출 한 후에 입력 한 전화번호,주소,EMAIL 주소,신용카드 번호 등 이 유효한 지 판단 하려 면 일반적인 글자 기반 문자 로 는 부족 하 다.
그래서 우리 가 원 하 는 패턴 을 더 자 유 롭 게 묘사 하 는 방법 이 바로 문자 클 러 스 터 입 니 다.모든 모음 문 자 를 표시 하 는 문자열 을 만 들 려 면 모든 모음 문 자 를 괄호 안에 넣 으 십시오.
   [AaEeIiOoUu]
이 모드 는 모든 모음 문자 와 일치 하지만 한 글자 만 표시 할 수 있 습 니 다.다음 과 같은 문자 의 범 위 를 하이픈 으로 표시 할 수 있 습 니 다.
[a-z]//모든 소문 자 일치
[A-Z]//모든 대문자 일치
[a-zA-Z]//모든 알파벳 일치
[0-9]//모든 숫자 와 일치 합 니 다.
[0-9.-]//모든 숫자,마침표 와 감호 가 일치 합 니 다.
[frtn]//모든 화이트 문자 일치
마찬가지 로 이것 도 한 글자 만 표시 하 는 것 이 매우 중요 하 다.소문 자 와 숫자 로 구 성 된 문자열 을 일치 시 키 려 면'z2','t6'또는'g7'이지 만'ab2','r2d 3'또는'b52'가 아니라면 이 모드 를 사용 하 십시오.
   ^[a-z][0-9]$
[a-z]는 26 글자 의 범 위 를 대표 하지만 첫 번 째 문자 가 소문 자 문자열 과 일치 할 수 있 습 니 다.
앞에서 언급 한^문자열 의 시작 을 나타 내 는 것 은 다른 의미 가 있 습 니 다.한 그룹의 괄호 안에^를 사용 하면'비'또는'배제'라 는 뜻 으로 특정한 문 자 를 제거 하 는 데 자주 사용 된다.그리고 앞의 예 를 들 어 우 리 는 첫 번 째 문자 가 숫자 가 될 수 없 도록 요구한다.
   ^[^0-9][0-9]$
이 모델 은'&5','g7','-2'와 일치 하지만'12','66'과 일치 하지 않 습 니 다.다음은 특정 문 자 를 제외 한 몇 가지 예 입 니 다.
[^a-z]//소문 자 를 제외 한 모든 문자
[^/^]//()(/)(^)를 제외 한 모든 문자
[^"]//작은 따옴표(")와 작은 따옴표(")를 제외 한 모든 문자
특수 문자'.'(점,마침표)는 정규 표현 식 에서'새 줄'을 제외 한 모든 문 자 를 표시 합 니 다.그래서 모드'^.5$'는 두 글자 의 숫자 5 로 끝 나 는 것 과'새 줄'이 아 닌 다른 문자열 로 시작 하 는 것 과 일치 합 니 다.빈 문자열 과'새 줄'만 포함 하 는 문자열 을 제외 한 모든 문자열 과 일치 할 수 있 습 니 다.
PHP 의 정규 표현 식 에는 다음 과 같은 일반적인 문자열 이 내장 되 어 있 습 니 다.
문자 클 러 스 터 의미
[[:alpha:]어떤 자모 든
[[:digit:]]모든 숫자
[[:alnum:]모든 자모 와 숫자
[[:space:]]모든 화이트 문자
[[:upper:]어떤 대문자 도
[[:lower:]]모든 소문 자
[[:punt:]]어떤 문장 부호 도
[[:xdigit:]16 진법 의 숫자 는[0-9a-fA-F]에 해당 합 니 다.
3.중복 출현 확인
지금까지는 알파벳 이나 숫자 를 일치 시 키 는 방법 을 알 고 있 었 지만,더 많은 경우 에는 단어 나 숫자 를 일치 시 킬 수 있 습 니 다.한 단 어 는 몇 개의 자모 로 구성 되 어 있 고,한 조 의 숫자 는 몇 개의 단수 로 구성 되 어 있다.문자 나 문자열 뒤에 있 는 괄호({})는 앞의 내용 이 반복 되 는 횟수 를 확인 하 는 데 사 용 됩 니 다.
문자 클 러 스 터 의미
   ^[a-zA-Z_]$ 모든 자모 와 밑줄
^[[:alpha:]{3}$모든 3 글자 의 단어
^a$알파벳 a
   ^a{4}$ aaaa
^a{2,4}$aa,aa 또는 aa
^a{1,3}$a,aa 또는 aa
^a{2,}$는 a 보다 많은 문자열 을 포함 합 니 다.
^a{2,}예:aardvark 와 aaab,하지만 애플 은 안 됩 니 다.
a{2,}예:baad 와 aa,하지만 Nantucket 은 안 됩 니 다.
t{2}두 개의 탭 문자
.{2}모든 두 글자
이 예 들 은 괄호 의 세 가지 다른 용법 을 묘사 하 였 다.하나의 숫자,{x}은"앞의 문자 나 문자 클 러 스 터 는 x 번 만 나타 납 니 다"라 는 뜻 입 니 다.하나의 숫자 에 쉼표,{x,}의 뜻 은'앞의 내용 에 x 또는 더 많은 횟수 가 나타난다'는 것 이다.쉼표 로 구 분 된 두 개의 숫자,{x,y}은"앞의 내용 은 적어도 x 번 은 나타 나 지만 y 번 을 초과 하지 않 는 다"고 표시 합 니 다.우 리 는 모드 를 더 많은 단어 나 숫자 로 확장 할 수 있다.
   ^[a-zA-Z0-9_]{1,}$//알파벳,숫자,밑줄 을 포함 하 는 모든 문자열
^[0-9]{1,}$//모든 정수
^-{0,1}[0-9]{1,}$/모든 정수
^-{0,1}[0-9]{0,}.{0,1}[0-9]{0,}$/모든 소수
마지막 예 는 이해 하기 가 쉽 지 않 습 니 다.그렇습니까?이렇게 보 세 요:선택 할 수 있 는 모든 마이너스(-{0,1})로 시작(^),0 개 이상 의 숫자([0-9]{0,}),선택 할 수 있 는 소수점(.{0,1})과 0 개 이상 의 숫자([0-9]{0,})를 따 르 고 다른 것($)이 없습니다.다음은 당신 이 사용 할 수 있 는 더욱 간단 한 방법 을 알 게 될 것 입 니 다.
특수 문자"?"{0,1}과 같 습 니 다."0 개 또는 1 개 앞의 내용"또는"앞의 내용 은 선택 할 수 있 습 니 다"를 의미 합 니 다.그래서 방금 의 예 는 다음 과 같이 간소화 할 수 있다.
   ^-?[0-9]{0,}.?[0-9]{0,}$
특수 문자'*'는{0,}과 같 습 니 다.모두'0 개 이상 의 앞 내용'을 대표 합 니 다.마지막 으로 문자'+'는{1,}과 같 습 니 다.'1 개 이상 의 앞 내용'을 표시 하기 때문에 위의 4 가지 예 는 다음 과 같이 쓸 수 있 습 니 다.
   ^[a-zA-Z0-9_]+$ //알파벳,숫자,밑줄 이상 을 포함 하 는 모든 문자열
^[0-9]+$//모든 정수
   ^-?[0-9]+$//모든 정수
   ^-?[0-9]*.?[0-9]*$//모든 소수
물론 기술적 으로 정규 표현 식 의 복잡성 을 낮 출 수 는 없 지만 쉽게 읽 을 수 있다.
         php 정규 표 식 의 완전 튜 토리 얼 의 정수 편 은 모두 말 했 습 니 다.정규 표현 식 에 대한 이해 가 강화 되 었 으 면 합 니 다.

좋은 웹페이지 즐겨찾기