Rumah tajuk utama 深入理解正则表达式基本语法的相关应用(收藏)

深入理解正则表达式基本语法的相关应用(收藏)

Aug 11, 2017 am 11:32 AM
asas biasa ungkapan

1、正则表达式基本语法

两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。例子如下:

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

象最后那个例子,如果你不使用两个特殊字符,你就在表示要查找的串在被查找串的任意部分——你并不把它定位在某一个顶端。

其它还有'*','+'和'?'这三个符号,表示一个或一序列字符重复出现的次数。它们分别表示“没有或更多”,“一次或更多”还有“没有或一次”。下面是几个例子:

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

你也可以使用范围,用大括号括起,用以表示重复次数的范围。

"ab{2}":表示一个字符串有一个a跟着2个b("abb");
"ab{2,}":表示一个字符串有一个a跟着至少2个b;
"ab{3,5}":表示一个字符串有一个a跟着3到5个b。
Salin selepas log masuk

请注意,你必须指定范围的下限(如:"{0,2}"而不是"{,2}")。还有,你可能注意到了,'*','+'和'?'相当于"{0,}","{1,}"和"{0,1}"。

还有一个'¦',表示“或”操作:

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

方括号表示某些字符允许在一个字符串中的某一特定位置出现:

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

你也可以在方括号里用'^'表示不希望出现的字符,'^'应在方括号里的第一位。(如:"%[^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">
Salin selepas log masuk

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">
Salin selepas log masuk

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">
Salin selepas log masuk

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">
Salin selepas log masuk

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到正无穷吧。
Salin selepas log masuk

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+)?$  //值类型正则表达式
Salin selepas log masuk
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menggantikan rentetan bermula dengan apa dengan ungkapan biasa php Bagaimana untuk menggantikan rentetan bermula dengan apa dengan ungkapan biasa php Mar 24, 2023 pm 02:57 PM

Ungkapan biasa PHP ialah alat yang berkuasa untuk pemprosesan dan penukaran teks. Ia boleh mengurus maklumat teks dengan berkesan dengan menghuraikan kandungan teks dan menggantikan atau memintasnya mengikut corak tertentu. Antaranya, aplikasi biasa ungkapan biasa adalah untuk menggantikan rentetan bermula dengan aksara tertentu Kami akan menerangkannya seperti berikut

Bagaimana untuk memadankan berbilang perkataan atau rentetan menggunakan ungkapan biasa Golang? Bagaimana untuk memadankan berbilang perkataan atau rentetan menggunakan ungkapan biasa Golang? May 31, 2024 am 10:32 AM

Ungkapan biasa Golang menggunakan aksara paip | untuk memadankan berbilang perkataan atau rentetan, memisahkan setiap pilihan sebagai ungkapan OR logik. Contohnya: padanan "musang" atau "anjing": musang|padanan anjing "cepat", "coklat" atau "malas": (cepat|coklat|malas) sepadan dengan "Pergi", "Python" atau "Java": Pergi| Python |Java memadankan perkataan atau kod zip 4 digit: ([a-zA

Cara menggunakan ungkapan biasa untuk mengalih keluar aksara Cina dalam php Cara menggunakan ungkapan biasa untuk mengalih keluar aksara Cina dalam php Mar 03, 2023 am 10:12 AM

Cara mengalih keluar bahasa Cina menggunakan peraturan biasa dalam PHP: 1. Buat fail contoh PHP 2. Tentukan rentetan yang mengandungi bahasa Cina dan Inggeris 3. Gunakan "preg_replace('/([\x80-\xff]*)/i'; '',$a);" Kaedah biasa boleh mengalih keluar aksara Cina daripada hasil pertanyaan.

Bagaimana untuk menggunakan pemadanan biasa untuk mengalih keluar tag html dalam php Bagaimana untuk menggunakan pemadanan biasa untuk mengalih keluar tag html dalam php Mar 21, 2023 pm 05:17 PM

Dalam artikel ini, kita akan belajar cara mengalih keluar teg HTML dan mengekstrak kandungan teks biasa daripada rentetan HTML menggunakan ungkapan biasa PHP. Untuk menunjukkan cara mengalih keluar teg HTML, mari kita tentukan rentetan yang mengandungi teg HTML dahulu.

Ketahui sintaks asas menggunakan pemilih CSS Ketahui sintaks asas menggunakan pemilih CSS Jan 13, 2024 am 11:44 AM

Untuk menguasai sintaks pemilih CSS asas, contoh kod khusus diperlukan adalah bahagian yang sangat penting dalam pembangunan bahagian hadapan Ia boleh digunakan untuk memilih dan mengubah suai pelbagai elemen dokumen HTML. Menguasai sintaks pemilih CSS asas adalah penting untuk menulis helaian gaya yang cekap. Artikel ini akan memperkenalkan beberapa pemilih CSS biasa dan contoh kod yang sepadan. Pemilih elemen Pemilih elemen ialah pemilih paling asas, yang boleh memilih elemen yang sepadan dengan nama tegnya. Contohnya, untuk memilih semua perenggan (elemen p), anda boleh gunakan

Bagaimana untuk menyelesaikan ralat sintaks ungkapan Python? Bagaimana untuk menyelesaikan ralat sintaks ungkapan Python? Jun 24, 2023 pm 05:04 PM

Python, sebagai bahasa pengaturcaraan peringkat tinggi, mudah dipelajari dan digunakan. Sebaik sahaja anda perlu menulis program Python, anda pasti akan menghadapi ralat sintaks, dan ralat sintaks ungkapan adalah perkara biasa. Dalam artikel ini, kita akan membincangkan cara menyelesaikan ralat sintaks ungkapan dalam Python. Ralat sintaks ungkapan adalah salah satu ralat yang paling biasa dalam Python, dan ia biasanya disebabkan oleh penggunaan sintaks yang salah atau kehilangan komponen yang diperlukan. Dalam Python, ungkapan biasanya terdiri daripada nombor, rentetan, pembolehubah dan pengendali. paling biasa

Berkongsi petua tentang menggunakan ungkapan biasa PHP untuk melaksanakan fungsi penggantian bahasa Cina Berkongsi petua tentang menggunakan ungkapan biasa PHP untuk melaksanakan fungsi penggantian bahasa Cina Mar 24, 2024 pm 05:57 PM

Berkongsi petua tentang menggunakan ungkapan biasa PHP untuk melaksanakan fungsi penggantian bahasa Cina Dalam pembangunan web, kami sering menghadapi situasi di mana kandungan bahasa Cina perlu diganti. Sebagai bahasa skrip sebelah pelayan yang popular, PHP menyediakan fungsi ekspresi biasa yang berkuasa, yang boleh merealisasikan penggantian bahasa Cina dengan mudah. Artikel ini akan berkongsi beberapa teknik untuk menggunakan ungkapan biasa untuk melaksanakan penggantian bahasa Cina dalam PHP dan memberikan contoh kod khusus. 1. Gunakan fungsi preg_replace untuk melaksanakan penggantian bahasa Cina Fungsi preg_replace dalam PHP boleh digunakan

Bagaimana untuk mengesahkan sama ada URL ialah protokol HTTPS menggunakan regex PHP Bagaimana untuk mengesahkan sama ada URL ialah protokol HTTPS menggunakan regex PHP Jun 24, 2023 am 08:16 AM

Keselamatan tapak web telah menarik lebih banyak perhatian, dan menggunakan protokol HTTPS untuk memastikan keselamatan penghantaran data telah menjadi bahagian penting dalam pembangunan tapak web semasa. Dalam pembangunan PHP, bagaimana untuk menggunakan ungkapan biasa untuk mengesahkan sama ada URL adalah protokol HTTPS? Mari ketahui di bawah. Ungkapan biasa Ungkapan biasa ialah ungkapan yang digunakan untuk menerangkan peraturan Ia adalah alat yang berkuasa untuk memproses teks dan digunakan secara meluas dalam pemadanan teks, carian dan penggantian. Dalam pembangunan PHP, kita boleh menggunakan ungkapan biasa untuk memadankan http dalam URL