正则表达式大全(整理版)(正则表达式基础学习笔记)

一、定界符 //

|| !! {}

二、原子

a-z A-Z 0-9 转义符 非打印字符:\f \n \r \t \v \cx

通用字符类型:

\d 任意一个十进制数字[0-9]

\D 任意一个非十进制数字[^0-9]

\w 任意一个单词字符[a-zA-Z0-9]

\W 任意一个非单词字符

\s 任意一个空白字符 [\f\n\r\t]

\S 任意一个非空白字符

[] 自定义原子表 表示任意一个 并且只生效一个 [^ ]表示排除

三、元字符 用来修饰原子 不能单独出现

* 表示匹配任意次

+ 表示匹配1次或者多次

? 表示匹配0次或1次

| 匹配多个分支选择 [a|A] 也可以[abc|ABC]

{n} 表示匹配n次

{n,m} 我爱线报网表示匹配至少n次 最多m词

{n,} 表示匹配最少n次

^或者\A 表示匹配字符串的开始

$或者\Z 表示匹配字符串的结束 例:/^abc.*abc$/表示以abc开头 以abc结尾

\b 匹配单词的定界符

\B 匹配除去单词边界以外的部分 举例$test= “this is island” 匹配第一个is是/\Bis\b/ 第二个is /\bis\b/表示两边都是边界 第三个is /\bis\B/ 左边边界右边不是边界

() 匹配整体作为一个原子,可以:

【1】第一:改变优先级

【2】将小原子变成大原子

【3】一个子模式

【4】反向引用 例子:2016-6-6 /\d{4}(-|\/)\d{2}\1\d{2}/我爱线报网 \1表示反向引用第一个()里边的模式 开头写?表示()不允许反向引用

四、模式修正符(写在定界符外边)

i 表示不区分大小写

m 多文本形式 即有多个换行符是有影响 即视为多行

s 单行文本

x 忽略空白字符

U (.*,.+)正则比较贪婪,取消贪婪模式 匹配第一个<b><b> i <b>am</b> a <b>superman</b> 也可以通过.*? 防止贪婪模式

例子:

2016-6-6 /\d{4}-\d{2}-\d{2}/

邮箱: \w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}

手机号 /[1-9]{1}(3|4|5|7|8)[0-9]{1我爱线报网1}/

中文 /[\u4e00-\u9fa5]/

六、正则常用函数

1、匹配查找:strstr strpos substr

(1)strstr 函数搜索字符串在另一字符串中的第一次出现,并返回字符串的剩余部分

例:strstr(“I love Shanghai!”,”Shanghai”); 返回shanghai!

strstr(“Hello world!”,”world”,true); 返回hello

(2) strpos 函数查找字符串在另一字符串中第一次出现的位置。

相关函数:

stripos() – 查找字符串在另一字符串中第一次出现的位置(不区分大小写)

strripos() – 查找字符串在另一字符串中我爱线报网最后一次出现的位置(不区分大小写)

strrpos() – 查找字符串在另一字符串中最后一次出现的位置(区分大小写)

(3)substr substr(“Hello world”,6);表示从第六个字符串开始 (负数表示从尾数开始) substr(“Hello world”,0,-1) 0表示第一个字符开始 -1从字符串末端返回的长度 返回:Hello worl

2、正则匹配查找

(1)preg_match 用法:preg_match(正则,‘字符串’,[$arr]),放回0或者1,有第三个参数则把结果存到$arr里边,只查找一次,

(2)preg_macth_all 用法preg_match_all(我爱线报网正则,‘字符串’,[$arr]),查找全部,吧字符串放到$arr里边

(3)preg_grep(正则,‘数组’) 匹配数组直接返回符合正则的数组

3、分割:explode implode preg_split

exlpode(,,$str) 按照,分割

正则匹配分割 preg_split(‘正则’,‘字符串’)

4、字符串替换函数

字符串替换:str_replace() str_replace(“需要替换的”,“替换成什么”,“$str”[,$num]) $num表示替换的次数 ,也可以是数组替换数组

正则表达式替换:preg_replace() preg_replace(“需要替换的”,“替换成什么”,“我爱线报网$str”),preg_replace() 也可以通过反向引用\1 \2 或者$1、$2反向引用正则的子模式,比如替换文章中的链接变成可访问的链接

preg_replace_callback 替换回调函数,例子:

$test=”今天是2014-02-14,明年是2015-02-04″

$reg =”/(\d{4})(-\d{2}-\d{2})/ “加()表示两个子模式

function myfun($m){

return ($m[1]+1).$m[2] //$m[1]表示第一个子模式

}

preg_replace_callback($reg,”myfun”,$text);

preg_quote — 转义正则表我爱线报网达式字符

举例

1. (\d+)\.(\d+)\.(\d+)\.(\d+)/g //IP地址的正则表达式

2. “^\d+$”  //非负整数(正整数 + 0)

3. “^[0-9]*[1-9][0-9]*$”  //正整数

4. “^((-\d+)|(0+))$”  //非正整数(负整数 + 0)

5. “^-[0-9]*[1-9][0-9]*$”  //负整数

6. “^-?\d+$”    //整数

7. “^\d+(\.\d+)?$”  //非负浮点数(正浮点数 + 0)

8. “^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-我爱线报网9]*[1-9][0-9]*))$”  //正浮点数

9. “^((-\d+(\.\d+)?)|(0+(\.0+)?))$”  //非正浮点数(负浮点数 + 0)

10. “^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$”  //负浮点数

11. “^(-?\d+)(\.\d+)?$”  //浮点数

12. “^[A-Za-z]+$”  //由26个英文字母组成的字符串

13. “^[A-Z]+$”  //由26个英文字母的大写组成的字符串

14. “^[a-z]+$”  //由26个英文我爱线报网字母的小写组成的字符串

15. “^[A-Za-z0-9]+$”  //由数字和26个英文字母组成的字符串

16. “^\w+$”  //由数字、26个英文字母或者下划线组成的字符串

17. “^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$”    //email地址

18. “^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$”  //url

19. /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日

20. /^((0我爱线报网([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 月/日/年

21. “^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$” //Emil

22. /^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$/ //电话号码

23. “^(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地址

24.

25. 匹配中文字符的正则表达式: [\u4e00-\u9fa5]

26. 匹配双字节字符(包括汉字在内):[^\x00-\xff]

27. 匹配空行的正则表达式:\n[\s| ]*\r

28. 匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/

29. 匹配首尾空格的正则表达式:(^\s*)|(\s*$)

30. 匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+(我爱线报网[-.]\w+)*\.\w+([-.]\w+)*

31. 匹配网址URL的正则表达式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$

32. 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

33. 匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?

34. 匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$

推荐阅读

给力项目线报网会员可免费下载 加入会员
友情提醒: 请尽量登录购买,防止付款了不发货!
QQ交流群:226333560 站长微信:qgzmt2
温馨提示:本站提供的一切软件、教程和内容信息都来自网络收集整理,仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,版权争议与本站无关。用户必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

给TA打赏
共{{data.count}}人
人已打赏
行业资讯

中国马丁靴品牌十大排名榜(马丁靴只知道“踢不烂”?这6大国产品牌,百元价格还很百搭)

2024-5-20 23:25:26

行业资讯

铭瑄硬件怎么样(再也不推荐购买技嘉配件了——铭瑄的产品它不香吗?)

2024-5-20 23:46:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索