정규 표현식이 검증에 자주 등장합니다! 정규식을 좀 더 간단하게 이해하는 방법을 알려드리겠습니다.
먼저 일반 이름의 명명에 대해 이야기해 보겠습니다.
이 단어는 모두가 익숙할 것이라고 생각합니다! "정규 표현식". 정규 표현식의 "정규"는 일반적으로 "regular", "regular" 및 "conventional"로 번역됩니다. 여기서 "정규"는 "규칙"과 "법률"을 의미하고, 정규식은 "특정 규칙을 설명하는 표현"을 의미하며, 이를 정규식이라고 부릅니다. 실제로 정규식은 특정 동작을 규제하는 데 사용됩니다! 즉, 교통 법규를 준수해야 하는 것처럼 제약 사항입니다.
저는 개인적으로 규칙을 이해하는 것이 어렵지 않다고 생각합니다! 기억해야 할 몇 가지 사항을 추가하고 유연하게 적용하면 끝입니다!
알았어! 다음으로 규칙성의 본체에 대해 알아보겠습니다.
이런 사항을 이해하셨다면 먼저 규칙성의 핵심 사항을 살펴보겠습니다. 일반적으로 프로젝트에는 문제가 없습니다!
첫 번째 ""
이것은 일반적으로 문자를 특수 문자 또는 리터럴 문자로 표시하는 이스케이프 문자로 알려져 있습니다. 예를 들어 "n"은 "n"과 일치합니다. "n"이면 개행 문자입니다.
슬래시 ""만 쓰고 싶으면 어떻게 해야 합니까? 이것도 아주 간단해요! "\" 이렇게 쓰면 됩니다! "\"를 두 개 쓰는 이유는 무엇입니까? 단지 구별하기 위해서입니다.
두 번째 "^"
이것은 일반적으로 시작 문자로 알려져 있으며, 이는 정규식을 작성할 준비가 되었음을 의미합니다! RegExp 개체의 Multiline 속성이 설정된 경우 ^는 "n" 또는 "r" 다음의 위치와도 일치합니다.
세 번째 "$"
이것은 일반적으로 엔딩 문자로 알려져 있으며 엔딩이라고도 할 수 있습니다(아주 비전문적인 설명)! RegExp 개체의 Multiline 속성이 설정된 경우 $는 "n" 또는 "r" 앞의 위치와도 일치합니다
네 번째 "*"
이는 이전 하위 표현식과 0번 이상 일치합니다. 예를 들어 zo*는 "z" 및 "zo" 또는 "zoo"와 일치할 수 있습니다. 이 "*"는 {0,}
와 동일합니다. 다섯 번째 "+"
는 이전 하위 표현식과 한 번 이상 일치합니다. 예를 들어 "zo+"는 "zo" 및 "zoo" 또는 "zooo"와 일치할 수 있습니다. "*"와 "+"는 거의 0번이고 1번은 1번입니다. 이 "+"는 {1,}과 동일합니다.
6번째 "?"
이는 이전 하위 표현식과 0번 또는 1번 일치합니다. 예를 들어, "do(es)?"는 "do" 또는 "does"와 일치할 수 있습니다. 이 물음표는 0회 일치 또는 1회 일치를 의미합니다!
일곱 번째 "{}"
이 기호는 몇 번 일치합니까?
1,{n}은 특정 횟수와 일치합니다. n은 음수가 아닌 정수입니다. 예: "o{2}"는 다음을 의미합니다. good, food 등과 같은 "oo" 두 개만 일치시키면 됩니다! 하지만 o가 하나뿐이기 때문에 신체와 일치할 수 없습니다!
2,{n,}은 최소 n번 이상 일치합니다. n은 음수가 아닌 정수입니다(예: "o{2,}"). 이는 good, goood, gooood와 같이 2개 이상의 "oo"가 일치함을 의미합니다. 등. "o{1,}"은 "o+"와 동일합니다. "o{0,}"는 "o*"와 동일합니다.
3,{n,m}은 최소 n번 일치하고 최대 m번 일치합니다. n과 m은 모두 음수가 아닌 정수입니다. 여기서 n
8번째 "?" 특수 사용법
이 문자가 다른 제한자(*, +,?, {n}, {n,}, {n,m}) 바로 뒤에 오면 패턴 일치는 탐욕스럽지 않습니다. . non-greedy 모드는 가능한 한 적은 수의 검색된 문자열과 일치하는 반면, 기본 Greedy 모드는 가능한 많은 검색된 문자열과 일치합니다. 예를 들어 문자열 "oooo"의 경우 "o+?"는 단일 "o"와 일치하고 "o+"는 모든 "o"와 일치합니다.
9번째 "."
는 개행 문자 "n"을 제외한 모든 단일 문자와 일치합니다. 개행 문자 "n" 내의 임의의 문자와 일치시키려면 "(.|n)" 패턴을 사용하십시오.
열 번째 "패턴"
이 "패턴"은 언뜻 이해하기 쉽지 않습니다. 그러나 이에 대한 내 이해는 다음과 같습니다. 모든 사람에게 유용하기를 바랍니다.
1. ?:pattern은 패턴과 일치하지만 일치하는 결과를 얻지 못합니다. 예: k(?:1|2|3) k는 어떤 것과도 일치합니다. 123 중 하나, 예: k1| k2
2. ?=pattern 긍정적인 미리보기 예: K(?=1|2|3) K가 123 중 하나와 일치하면 K를 선택합니다. 예: k1 또는 k
3. ?! 패턴 순방향 부정 사전 검사, 예: k(?!1|2|3) K가 123 중 어느 것과도 일치하지 않으면 K를 선택합니다. 예: k1에서 k와 일치하지 않지만 k4, k5일 수 있습니다
4. ?< ;=pattern 역방향 긍정 조회 예: (?5. 역방향 부정 사전 검사(예: (?
11번째 "|"
이 기호는 또는 예를 들어 "f|good"이 "f" 또는 "good"과 일치할 수 있다는 의미입니다. 그렇다면 "(f|g)ood"는 "food"와 일치합니다” 또는 "좋은".
열두 번째 "[]"
이 기호는 문자 집합의 합을 의미합니다. "{}"와 비슷해 보이지만 의미가 많이 다릅니다.
13번째 "()"
이 기호 배열 또는 집합
1, [xyz]는 포함된 모든 문자와 일치합니다. 즉, 셋 중 하나를 선택하라는 것입니다. 예: "[abc]"는 "company"의 "a"와 일치할 수 있지만 "beautiful"에는 두 글자가 사용되므로 일치할 수 없습니다.
2. [^xyz] "non"이라고도 할 수 있는 부정 문자 집합입니다. 예: "[^abc]"는 "drop" 등과 일치할 수 있습니다! 단어에 "abc" 문자가 없으면 괜찮습니다.
3. [a-z] 문자 범위. 지정된 범위 내의 모든 문자와 일치합니다. 예를 들어, "[a-z]"는 "a"부터 "z"까지의 범위에 있는 모든 소문자 알파벳 문자와 일치합니다. 0부터 9까지의 숫자와 직접 일치하는 "[0-9]"로 쓸 수도 있습니다.
4. [^a-z] 모두가 그것이 무엇을 의미하는지 알아야 한다고 생각합니다. 맞죠. 그것은 여러분이 생각하는 것을 의미합니다. "a"에서 "z" 범위에 없는 모든 문자는 에서 봤습니다. 처음에는 a와 z 사이에 없는 글자인줄 알았습니다! a부터 z 사이에 문자가 없으면 중국어에는 "ü"만 있다고 했어요! 이건 "유"라고 읽는 것 같아요! 헤헤! 누구나 명확하게 볼 수 있습니다! 글자가 아니라 문자입니다.
“”와 글자의 특별한 의미를 살펴보겠습니다.
“b”는 단어의 경계와 일치하며 단어와 공백 사이의 위치를 의미합니다. 예를 들어, "erb"는 "never"의 "er"와 일치할 수 있지만 "동사"의 "er"와는 일치하지 않습니다. 이렇게 기억하시면 더 쉬울 것 같습니다. 경계의 가장자리는 b로 시작합니다.
"B"는 "b"의 반대이며 단어가 아닌 경계와 일치합니다. "erB"는 "동사"의 "er"와 일치할 수 있지만 "never"의 "er"는 일치하지 않습니다.
“d”가 더 자주 사용됩니다! 이 점을 염두에 두시기 바랍니다. 이는 [0-9]에 해당하는 숫자와 일치합니다.
"D"도 이해하기 쉽습니다. [^0-9]와 같은 숫자가 아니라는 반대 의미도 있습니다.
"f"는 폼 피드 문자와 일치합니다. 이에 대해 너무 많이 설명할 필요가 없습니다! 다음 네 가지는 너무 많아서 설명하기가 너무 어렵습니다. 그냥 기억해! 프로젝트에 사용해보세요!
"n"은 개행 문자와 일치합니다.
"r"은 캐리지 리턴 문자와 일치합니다.
"t"는 탭 문자와 일치합니다.
"v"는 세로 탭 문자와 일치합니다.
"s"는 모든 null 문자와 일치하며 공백, 탭, 양식 피드 등을 포함한 모든 공백 문자와 일치합니다. [fnrtv]와 동일합니다. 즉, 여기에는 위의 5가지가 모두 포함되어 있습니다!
"S"는 [^ fnrtv]에 해당하는 공백이 아닌 문자입니다.
이쯤 되면 일반 룰이 실제로는 이런 캐릭터라고 다들 느끼실 텐데요! 그리고 그 중 일부는 우리의 논리적인 사고로 추론할 수 있고, 일부는 누구나 유연하게 사용할 수 있는 한 반복적이다.
"w"는 밑줄을 포함한 모든 단어 문자와 일치합니다. "[A-Za-z0-9_]"와 동일합니다. 이는 실무에서 꽤 많이 사용되므로 이 점을 염두에 두는 것이 좋습니다.
"W"는 단어가 아닌 숫자 문자와 일치합니다. "[^A-Za-z0-9_]"와 동일합니다.
알겠습니다! 기본적으로, 이것이 여러분이 기억해야 할 전부입니다! 일부 정규식 마스터는 이에 대해 "전혀 완성되지 않았나요?"라고 말할 수 있습니다. 제가 작성한 내용은 프로젝트에서 일반적이고 더 실용적인 몇 가지 사항일 뿐입니다. . 자유롭게 사용하세요.
다음으로 몇 가지 실질적인 작업을 수행하고 몇 가지 정규식을 구문 분석해 보겠습니다.
예를 들어 다음 일반 규칙은 다음과 같습니다. ^([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][ 0-9 ])$
정규 정규식 전문가라면 한 눈에 무슨 내용인지 알 수 있을 거라 생각합니다. 물론, 강한 논리적 사고를 가진 사람들은 이것이 무엇인지 단 두 번만 봐도 알 것입니다. 그렇습니다. 그것은 시간의 법칙입니다.
OK 이 정규식을 분석해 보겠습니다. "^", "([0-1]?[0-9]|2[0-3])"는 그룹, "[0-1]?" 물음표는 0 또는 1이 최대 0개 또는 1개 있을 수 있다는 것입니다. "[0-9]"는 0에서 9 사이의 숫자입니다. "|"는 "또는"을 의미합니다. 이는 "[0- 1]" ?[0-9]"는 "2[0-3]"이고, "2[0-3]"은 2를 나타내는 첫 번째 2이고, 다음 0~3은 0과 3 사이의 임의의 숫자입니다. , ": "는 ":"을 의미합니다. "([0-5][0-9])"도 그룹입니다. "[0-5]"는 0에서 5 사이의 숫자입니다. "[0-9]" 0과 9 사이의 숫자입니다. ":"도 원래 의미이고, "([0-5][0-9])"도 그룹이고, "[0-5]"는 0과 5 사이의 숫자입니다. , "[0-9]"는 0에서 9 사이의 숫자이고 "$"는 종결자입니다.
모두 함께 소수를 분석해 볼까요
예: ^[1-9]+d*(.[0-9]{1,2})?|0(.[0-9]{1,2})?$
“^”는 시작 문자, "[1-9]+" 여기서 "+"는 1과 9 사이의 최소 하나 이상을 의미하고, "d*"에서는 "d"는 숫자, "*"는 최소 0개의 숫자가 있음을 의미합니다. 또는 여러 개의 숫자가 있습니다. "(.[0-9]{1,2})?" 이 그룹에는 "."이 원점입니다. "[0-9]{1,2}" 사이에 하나가 있습니다. 0 및 9 또는 두 개의 숫자가 있고 그 뒤에 물음표 "?"가 있으면 "(.[0-9]{1,2})"가 0 또는 1개 있음을 의미합니다. "|"는 "[1-9]+d*(.[0-9]{1,2})?" 또는 "0(.[0-9]{1,2})?"입니다. "0(.[0-9]{1,2})?" 이 그룹의 0은 원래 의미이고, 이 그룹의 "(.[0-9]{1,2})는 "."입니다. ?"는 원래 의미입니다. "[0-9]{1,2}" 0에서 9 사이에 하나 또는 두 개의 숫자가 있습니다. 그 뒤에 있는 물음표 "?"는 0 또는 하나의 숫자가 있음을 의미합니다. "(.[0 -9]{1, 2})".
아래에서는 일반적인 정규식의 몇 가지 예를 제공합니다.
^[1-9]d*$ // 양의 정수 일치
^-[1-9]d*$ // 음의 정수 일치
^-? [1-9]d*$ // 정수와 일치
^[1-9]d*|0$ // 음이 아닌 정수와 일치(양의 정수 + 0)
^-[1-9]d *|0 $ //양수가 아닌 정수 일치(음의 정수 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$ //양의 부동 소수점 숫자 일치
^- ([1-9]d*.d*|0.d*[1-9]d*)$ //음수 부동 소수점 숫자 일치
^-?([1-9]d*.d*|0. d *[1-9]d*|0?.0+|0)$ //부동 소수점 숫자 일치
^[1-9]d*.d*|0.d*[1-9]d*| 0? .0+|0$ //음수가 아닌 부동 소수점 숫자 일치(양의 부동 소수점 숫자 + 0)
^(-([1-9]d*.d*|0.d*[1-9 ]d*))| 0?.0+|0$ //양수가 아닌 부동 소수점 숫자와 일치합니다(음수 부동 소수점 숫자 + 0)
^[a-zA-Z][a-zA-Z0-9_]{ 4,15}$ //계좌번호 일치 합법적인가요(문자로 시작, 5~16바이트 허용, 영숫자 밑줄 허용)
^s*|s*$ //앞뒤 공백 문자와 일치하는 정규식
ns* r //빈 줄과 일치하는 정규식
[^x00-xff] //2바이트 문자 일치(한자 포함)
[u4e00-u9fa5] //한자 일치하는 정규식
사용자 이름
^[a-z0- 9_-]{3 ,16}$
비밀번호
^[a-z0-9_-]{6,18}$
16진수 값
^#?([a-f0-9]{6}|[a -f0 -9]{3})$
이메일
^([a-z0-9_.-]+)@([da-z.-]+).([a-z.]{2,6}) $
^[a-zd]+(.[a-zd]+)*@([da-z](-[da-z])?)+(.{1,2}[a-z]+)+ $
URL
^(https?://)?([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?$
IP 주소
((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[ 01 ]?dd?)
or
^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9] ? ).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
HTML 태그
^(.*)1>|s+/>)$
위는 정규 표현식에 대한 몇 가지 사항입니다. 기초지식을 실제 사례를 통해 설명하였으니, 정규표현식에 대해 헷갈려하는 학생들에게 도움이 되었으면 좋겠습니다.
관련 질문이 더 필요하시면 PHP 중국어 웹사이트를 방문하세요: PHP 비디오 튜토리얼
위 내용은 정규식의 상세한 기본 예제 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

PHP는 동적 웹 사이트를 구축하는 데 사용되며 해당 핵심 기능에는 다음이 포함됩니다. 1. 데이터베이스와 연결하여 동적 컨텐츠를 생성하고 웹 페이지를 실시간으로 생성합니다. 2. 사용자 상호 작용 및 양식 제출을 처리하고 입력을 확인하고 작업에 응답합니다. 3. 개인화 된 경험을 제공하기 위해 세션 및 사용자 인증을 관리합니다. 4. 성능을 최적화하고 모범 사례를 따라 웹 사이트 효율성 및 보안을 개선하십시오.

PHP는 MySQLI 및 PDO 확장 기능을 사용하여 데이터베이스 작업 및 서버 측 로직 프로세싱에서 상호 작용하고 세션 관리와 같은 기능을 통해 서버 측로 로직을 처리합니다. 1) MySQLI 또는 PDO를 사용하여 데이터베이스에 연결하고 SQL 쿼리를 실행하십시오. 2) 세션 관리 및 기타 기능을 통해 HTTP 요청 및 사용자 상태를 처리합니다. 3) 트랜잭션을 사용하여 데이터베이스 작업의 원자력을 보장하십시오. 4) SQL 주입 방지, 디버깅을 위해 예외 처리 및 폐쇄 연결을 사용하십시오. 5) 인덱싱 및 캐시를 통해 성능을 최적화하고, 읽을 수있는 코드를 작성하고, 오류 처리를 수행하십시오.

PHP에서 전처리 문과 PDO를 사용하면 SQL 주입 공격을 효과적으로 방지 할 수 있습니다. 1) PDO를 사용하여 데이터베이스에 연결하고 오류 모드를 설정하십시오. 2) 준비 방법을 통해 전처리 명세서를 작성하고 자리 표시자를 사용하여 데이터를 전달하고 방법을 실행하십시오. 3) 쿼리 결과를 처리하고 코드의 보안 및 성능을 보장합니다.

PHP와 Python은 고유 한 장점과 단점이 있으며 선택은 프로젝트 요구와 개인 선호도에 달려 있습니다. 1.PHP는 대규모 웹 애플리케이션의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 데이터 과학 및 기계 학습 분야를 지배합니다.

PHP는 전자 상거래, 컨텐츠 관리 시스템 및 API 개발에 널리 사용됩니다. 1) 전자 상거래 : 쇼핑 카트 기능 및 지불 처리에 사용됩니다. 2) 컨텐츠 관리 시스템 : 동적 컨텐츠 생성 및 사용자 관리에 사용됩니다. 3) API 개발 : 편안한 API 개발 및 API 보안에 사용됩니다. 성능 최적화 및 모범 사례를 통해 PHP 애플리케이션의 효율성과 유지 보수 성이 향상됩니다.

PHP를 사용하면 대화식 웹 컨텐츠를 쉽게 만들 수 있습니다. 1) HTML을 포함하여 컨텐츠를 동적으로 생성하고 사용자 입력 또는 데이터베이스 데이터를 기반으로 실시간으로 표시합니다. 2) 프로세스 양식 제출 및 동적 출력을 생성하여 htmlspecialchars를 사용하여 XSS를 방지합니다. 3) MySQL을 사용하여 사용자 등록 시스템을 작성하고 Password_Hash 및 전처리 명세서를 사용하여 보안을 향상시킵니다. 이러한 기술을 마스터하면 웹 개발의 효율성이 향상됩니다.

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP는 여전히 역동적이며 현대 프로그래밍 분야에서 여전히 중요한 위치를 차지하고 있습니다. 1) PHP의 단순성과 강력한 커뮤니티 지원으로 인해 웹 개발에 널리 사용됩니다. 2) 유연성과 안정성은 웹 양식, 데이터베이스 작업 및 파일 처리를 처리하는 데 탁월합니다. 3) PHP는 지속적으로 발전하고 최적화하며 초보자 및 숙련 된 개발자에게 적합합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

WebStorm Mac 버전
유용한 JavaScript 개발 도구
