헤드라인 정규표현식의 기본문법 관련 응용에 대한 심층적인 이해(컬렉션)

정규표현식의 기본문법 관련 응용에 대한 심층적인 이해(컬렉션)

Aug 11, 2017 am 11:32 AM
기초적인 정기적인 표현

1. 정규식의 기본 구문

두 개의 특수 기호 '^'와 '$'. 그들의 기능은 각각 문자열의 시작과 끝을 나타내는 것입니다. 예는 다음과 같습니다.

"^The":表示所有以"The"开始的字符串("There","The cat"等);
"of despair$":表示所以以"of despair"结尾的字符串;
"^abc$":表示开始和结尾都是"abc"的字符串——呵呵,只有"abc"自己了;
"notice":表示任何包含"notice"的字符串。
로그인 후 복사

마지막 예와 마찬가지로 두 개의 특수 문자를 사용하지 않으면 찾으려는 문자열이 검색 중인 문자열의 일부임을 나타내는 것입니다. 위치를 지정하지 않는 것입니다. 상단.

기타 기호로는 '*', '+', '?'가 있는데, 이는 문자 또는 문자 시퀀스가 ​​반복적으로 나타나는 횟수를 나타냅니다. 각각 "없음 또는 그 이상", "한 번 이상" 및 "없음 또는 한 번"을 의미합니다. 다음은 몇 가지 예입니다.

"ab*":表示一个字符串有一个a后面跟着零个或若干个b。("a", "ab", "abbb",……);
"ab+":表示一个字符串有一个a后面跟着至少一个b或者更多;
"ab?":表示一个字符串有一个a后面跟着零个或者一个b;
"a?b+$":表示在字符串的末尾有零个或一个a跟着一个或几个b。
로그인 후 복사

중괄호로 묶인 범위를 사용하여 반복 범위를 나타낼 수도 있습니다.

"ab{2}":表示一个字符串有一个a跟着2个b("abb");
"ab{2,}":表示一个字符串有一个a跟着至少2个b;
"ab{3,5}":表示一个字符串有一个a跟着3到5个b。
로그인 후 복사

범위의 하한을 지정해야 한다는 점에 유의하세요(예: "{,2}" 대신 "{0,2}"). 또한 '*', '+' 및 '?'는 "{0,}", "{1,}" 및 "{0,1}"과 동일하다는 것을 알 수 있습니다.

"OR" 연산을 의미하는 '¦'도 있습니다:

"hi¦hello":表示一个字符串里有"hi"或者"hello";
"(b¦cd)ef":表示"bef"或"cdef";
"(a¦b)*c":表示一串"a""b"混合的字符串后面跟一个"c";
'.'可以替代任何字符:
"a.[0-9]":表示一个字符串有一个"a"后面跟着一个任意字符和一个数字;
"^.{3}$":表示有任意三个字符的字符串(长度为3个字符);
로그인 후 복사

대괄호는 특정 문자가 문자열의 특정 위치에 나타날 수 있음을 나타냅니다.

"[ab]":表示一个字符串有一个"a"或"b"(相当于"a¦b");
"[a-d]":表示一个字符串包含小写的'a'到'd'中的一个(相当于"a¦b¦c¦d"或者"[abcd]");
"^[a-zA-Z]":表示一个以字母开头的字符串;
"[0-9]%":表示一个百分号前有一位的数字;
",[a-zA-Z0-9]$":表示一个字符串以一个逗号后面跟着一个字母或数字结束。
로그인 후 복사

대괄호 안에 '^를 사용할 수도 있습니다 '는 바람직하지 않은 문자를 나타내며, '^'는 대괄호 안의 첫 번째 문자여야 합니다. (예: "%[^a-zA-Z]%"는 두 개의 퍼센트 기호 사이에 문자가 나타나지 않아야 함을 의미합니다.)

그대로 표현하려면 "^.$()¦*+?{" 문자 앞에 이스케이프 문자 ''를 추가해야 합니다.

대괄호 안에는 이스케이프 문자가 필요하지 않습니다.

2. 텍스트 상자의 입력 문자 유형을 제어합니다

1. 숫자와 영어만 입력할 수 있습니다:

<input onkeyup="value=value.replace(/[\W]/g,&#39;&#39;) " onbeforepaste="clipboardData.setData(&#39;text&#39;,clipboardData.getData(&#39;text&#39;).replace(/[^\d]/g,&#39;&#39;))" 
ID="Text1" NAME="Text1">
로그인 후 복사

2. 숫자만 입력할 수 있습니다:

<input onkeyup="value=value.replace(/[^\d]/g,&#39;&#39;) " onbeforepaste="clipboardData.setData(&#39;text&#39;,clipboardData.getData(&#39;text&#39;).replace(/[^\d]/g,&#39;&#39;))" 
ID="Text2" NAME="Text2">
로그인 후 복사

3. 전자만 입력 가능:

<input onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,&#39;&#39;)" onbeforepaste="clipboardData.setData(&#39;text&#39;,clipboardData.getData(&#39;text&#39;)
.replace(/[^\uFF00-\uFFFF]/g,&#39;&#39;))" ID="Text3" NAME="Text3">
로그인 후 복사

4. 한자만 입력 가능:

<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,&#39;&#39;)" onbeforepaste="clipboardData.setData(&#39;text&#39;,clipboardData.getData(&#39;text&#39;)
.replace(/[^\u4E00-\u9FA5]/g,&#39;&#39;))" ID="Text4" NAME="Text4">
로그인 후 복사

3. 정규식 적용 예시에 대한 인기 설명

//校验是否全由数字组成
/^[0-9]{1,20}$/
^ 表示打头的字符要匹配紧跟^后面的规则
$ 表示打头的字符要匹配紧靠$前面的规则
[ ] 中的内容是可选字符集
[0-9] 表示要求字符范围在0-9之间
{1,20}表示数字字符串长度合法为1到20,即为[0-9]中的字符出现次数的范围是1到20次。/^ 和 $/成对使用应该是表示要求整个字符串完全匹配定义的规则,而不是只匹配字符串中的一个子串。
//校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串
/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/
^[a-zA-Z]{1} 表示第一个字符要求是字母。
([a-zA-Z0-9]|[._]){4,19} 表示从第二位开始(因为它紧跟在上个表达式后面)的一个长度为4到9位的字符串,它要求是由大小写字母、数字或者特殊字符集[._]组成。
//校验用户姓名:只能输入1-30个以字母开头的字串
/^[a-zA-Z]{1,30}$/
//校验密码:只能输入6-20个字母、数字、下划线
/^(\w){6,20}$/
\w:用于匹配字母,数字或下划线字符 //校验普通电话、传真号码:可以“+”或数字开头,可含有“-” 和 “ ”
/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/
\d:用于匹配从0到9的数字;
“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次
可以匹配的字符串如:+123 -999 999 ; +123-999 999 ;123 999 999 ;+123 999999等
//校验URL
/^http[s]{0,1}:\/\/.+$/ 或 /^http[s]{0,1}:\/\/.{1,n}$/ (表示url串的长度为length(“https://”) + n )
\ / :表示字符“/”。
. 表示所有字符的集
+ 等同于{1,},就是1到正无穷吧。
로그인 후 복사

4. 정규식 응용(공통부분)

"^\d+$"  //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$"  //正整数
"^((-\d+)|(0+))$"  //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$"  //负整数
"^-?\d+$"    //整数
"^\d+(\.\d+)?$"  //非负浮点数(正浮点数 + 0)
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数
"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"  //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数
"^(-?\d+)(\.\d+)?$"  //浮点数
"^[A-Za-z]+$"  //由26个英文字母组成的字符串
"^[A-Z]+$"  //由26个英文字母的大写组成的字符串
"^[a-z]+$"  //由26个英文字母的小写组成的字符串
"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串
"^\w+$"  //由数字、26个英文字母或者下划线组成的字符串
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"    //email地址
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"  //url
/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/   //  年-月-日
/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/   // 月/日/年
"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"   //Emil
"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?"     //电话号码
"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$"   //IP地址
^([0-9A-F]{2})(-[0-9A-F]{2}){5}$   //MAC地址的正则表达式
^[-+]?\d+(\.\d+)?$  //值类型正则表达式
로그인 후 복사
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP 정규 표현식으로 무언가로 시작하는 문자열을 바꾸는 방법 PHP 정규 표현식으로 무언가로 시작하는 문자열을 바꾸는 방법 Mar 24, 2023 pm 02:57 PM

PHP 정규 표현식은 텍스트 처리 및 변환을 위한 강력한 도구입니다. 텍스트 내용을 구문 분석하고 특정 패턴에 따라 대체하거나 가로채서 텍스트 정보를 효과적으로 관리할 수 있습니다. 그 중 정규식의 일반적인 적용은 특정 문자로 시작하는 문자열을 바꾸는 것입니다.

Golang 정규식을 사용하여 여러 단어나 문자열을 일치시키는 방법은 무엇입니까? Golang 정규식을 사용하여 여러 단어나 문자열을 일치시키는 방법은 무엇입니까? May 31, 2024 am 10:32 AM

Golang 정규 표현식은 파이프 문자 |를 사용하여 여러 단어 또는 문자열을 일치시키고 각 옵션을 논리적 OR 표현식으로 구분합니다. 예: "fox" 또는 "dog"와 일치: fox|dog은 "quick", "brown" 또는 "lazy"와 일치: (quick|brown|lazy)는 "Go", "Python" 또는 "Java"와 일치: Go| Python |Java는 단어 또는 4자리 우편번호와 일치합니다: ([a-zA

PHP에서 정규식을 사용하여 한자를 제거하는 방법 PHP에서 정규식을 사용하여 한자를 제거하는 방법 Mar 03, 2023 am 10:12 AM

일반 규칙을 사용하여 PHP에서 중국어를 제거하는 방법: 1. PHP 샘플 파일을 만듭니다. 2. 중국어와 영어가 포함된 문자열을 정의합니다. 3. "preg_replace('/([\x80-\xff]*)/i'를 사용합니다. '',$a);" 일반 방법은 쿼리 결과에서 한자를 제거할 수 있습니다.

일반 매칭을 사용하여 PHP에서 HTML 태그를 제거하는 방법 일반 매칭을 사용하여 PHP에서 HTML 태그를 제거하는 방법 Mar 21, 2023 pm 05:17 PM

이 기사에서는 PHP 정규식을 사용하여 HTML 태그를 제거하고 HTML 문자열에서 일반 텍스트 콘텐츠를 추출하는 방법을 알아봅니다. HTML 태그를 제거하는 방법을 보여주기 위해 먼저 HTML 태그가 포함된 문자열을 정의해 보겠습니다.

CSS 선택기 사용의 기본 구문 알아보기 CSS 선택기 사용의 기본 구문 알아보기 Jan 13, 2024 am 11:44 AM

기본 CSS 선택기 구문을 익히려면 특정 코드 예제가 필요합니다. CSS 선택기는 HTML 문서의 다양한 요소를 선택하고 수정하는 데 사용할 수 있습니다. 효율적인 스타일시트를 작성하려면 기본 CSS 선택기 구문을 익히는 것이 중요합니다. 이 문서에서는 몇 가지 일반적인 CSS 선택기와 해당 코드 예제를 소개합니다. 요소 선택기 요소 선택기는 태그 이름으로 해당 요소를 선택할 수 있는 가장 기본적인 선택기입니다. 예를 들어, 모든 단락(p 요소)을 선택하려면 다음을 사용할 수 있습니다.

Python 표현식 구문 오류를 해결하는 방법은 무엇입니까? Python 표현식 구문 오류를 해결하는 방법은 무엇입니까? Jun 24, 2023 pm 05:04 PM

고급 프로그래밍 언어인 Python은 배우고 사용하기 쉽습니다. Python 프로그램을 작성해야 하면 필연적으로 구문 오류가 발생하며 표현식 구문 오류는 흔한 오류입니다. 이 기사에서는 Python에서 표현식 구문 오류를 해결하는 방법에 대해 설명합니다. 표현식 구문 오류는 Python에서 가장 일반적인 오류 중 하나이며 일반적으로 구문을 잘못 사용하거나 필요한 구성 요소가 누락되어 발생합니다. Python에서 표현식은 일반적으로 숫자, 문자열, 변수 및 연산자로 구성됩니다. 가장 흔한

PHP 정규식을 사용하여 중국어 대체 함수 구현에 대한 팁 공유 PHP 정규식을 사용하여 중국어 대체 함수 구현에 대한 팁 공유 Mar 24, 2024 pm 05:57 PM

PHP 정규 표현식을 사용하여 중국어 대체 기능 구현에 대한 팁 웹 개발에서 중국어 콘텐츠를 대체해야 하는 상황에 자주 직면합니다. 널리 사용되는 서버측 스크립팅 언어인 PHP는 중국어 대체를 쉽게 실현할 수 있는 강력한 정규식 기능을 제공합니다. 이 기사에서는 정규식을 사용하여 PHP에서 중국어 대체를 구현하는 몇 가지 기술을 공유하고 구체적인 코드 예제를 제공합니다. 1. preg_replace 함수를 사용하여 중국어 대체를 구현합니다. PHP의 preg_replace 함수를 사용할 수 있습니다.

PHP 정규식을 사용하여 URL이 HTTPS 프로토콜인지 확인하는 방법 PHP 정규식을 사용하여 URL이 HTTPS 프로토콜인지 확인하는 방법 Jun 24, 2023 am 08:16 AM

웹사이트 보안은 점점 더 많은 관심을 받고 있으며, 데이터 전송 보안을 보장하기 위해 HTTPS 프로토콜을 사용하는 것은 현재 웹사이트 개발에서 중요한 부분이 되었습니다. PHP 개발에서 정규식을 사용하여 URL이 HTTPS 프로토콜인지 확인하는 방법은 무엇입니까? 여기 우리가 알아보러 왔습니다. 정규식 정규식은 규칙을 설명하는 데 사용되는 표현식으로, 텍스트 처리를 위한 강력한 도구이며 텍스트 일치, 검색 및 교체에 널리 사용됩니다. PHP 개발에서는 정규식을 사용하여 URL의 http를 일치시킬 수 있습니다.