首页 PHP后端 非常重要的php正则表达式详解【转载】
非常重要的php正则表达式详解【转载】
作者 : 网络 来源 : 网络 浏览 : 255 次 时间 : 2019-08-23 15:35:03
简述
正则表达式是php中一个非常重要的知识点,通常用来查找和替换字符串,最常用的就是验证用户输入的信息格式是否正确,如邮件格式、电话格式等等。还有比如采集器之类的软件中,正则也是必用不可!

  现在开始来学习正则表达式的基本语法:

1.“/”是定界符,“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。同时为了正则更加灵活,引入了元字符,即“+”, “*”,以及 “?”。

(1)“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次

比如:/php+/,能够与“phpp”匹配,即字母ph后面连续出现一个或多个字母p的字符串相匹配。

(2)“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次

比如:/php*/能够与“phpddt”相匹配,即ph后面可以有0个或多个p

(3)“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。


比如:/php?/能够“pher”匹配,即phh后面可以有0个或者1个p

其他重要的元字符:

\s:用于匹配单个空格符,包括tab键和换行符;

\S:用于匹配除单个空格符之外的所有字符;

\d:用于匹配从0到9的数字;

\w:用于匹配字母,数字或下划线字符;

\W:用于匹配所有与\w不匹配的字符;

. :用于匹配除换行符之外的所有字符。

示例:/\s+/用于匹配目标对象中的一个或多个空格字符


2.定位符用于规定匹配模式在目标对象中的出现位置。常用的有“^”, “$”, “\b” 以及 “\B”

(1)“^”定位符规定匹配模式必须出现在目标字符串的开头

(2)“$”定位符规定匹配模式必须出现在目标对象的结尾

(3)“\b”定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一

(4)“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内


3.php的正则匹配模式非常灵活,可以指定某一范围 

例如:

/[A-Z]/

上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。

/[a-z]/

上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。

/[0-9]/

上述正则表达式将会与从0到9范围内任何一个数字相匹配。

/([a-z][A-Z][0-9])+/

上述正则表达式将会与任何由字母和数字组成的字符串


4.可以同时与多种模式选择匹配

如/phpddt.com|phpddt|100/可以与“phpddt.com” “phpddt” “100”相匹配


5.否定符 “[^]”规定目标对象中不能存在模式中所规定的字符串

例如:[^phpddt]匹配除了phpddt字符外的所有东西

下面来讲讲正则表达式常用函数吧!(非常重要)


<?php 
//preg_match("正则表达式","字符串")用于在字符串中查找匹配项 
$email = "987044391@qq.com"; 
if (preg_match("/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([.a-zA-Z0-9_-])+([.a-zA-Z0-9_-]+)+([.a-zA-Z0-9_-])$/",$email)){ 
 echo '匹配成功<hr />'; 
}else { 
 echo '匹配失败<hr />'; 
} 
//preg_quote("字符串") 在每个有正则表达式语法前面加入一个转义字符即\ 
 
$str = "php点点通是一个学习php的网站,(⊙o⊙)…"; 
echo preg_quote($str); 
echo "<hr />"; 
 
//preg_split("正则","字符串")分割字符串 
$php = "+php++点点通++++是好网站"; 
$field = preg_split("/\+{1,}/",$php); 
foreach($field as $f){ 
echo $f." "; 
} 
echo "<hr />"; 
//preg_grep("正则","字符串") 与数组匹配后返回新数组 
$phpddt = array("php点点通","php100","呵呵","hahaha","phpchina"); 
$item = preg_grep("/^php/",$phpddt); 
print_r($item); 
 
echo "<hr />"; 
//preg_replace("正则","替换内容","原字符串")  很重要,很常用 
$a = "欢迎光临/"; //给http开头的加上超链接 
echo preg_replace("/http:\/\/(.*)\//","<a href=\"\${0}\">\${0}</a>","$a"); 
?>
上一篇: js中无法解析框架自身函数生成url和参数拼接问题【原创】

下一篇: 在windows下使用nssm将脚本文件封装成系统服务【原创】
版权声明:原创文章,转载时请注明原始出处,作者等相关信息。
本文连接:https://ntbk8.cn/d-88.html
留言
上传图片
评论列表

91 篇

文章总数

36190 次

浏览总数

92 条

评论总数

昵称 Telkobe
职业 PHP开发
家乡 四川南充
住址 暂居成都
QQ 946188985
文章搜索
热门文章
最新文章
新闻头条

1 通了!栖霞救援4号钻孔成功透巷,新的生命联络通道建立!

2 山东栖霞市笏山金矿事故救援最新进展:5中段一名伤势危重矿工已无生命迹象

3 复旦大学附属肿瘤医院发现一人核酸检测结果可疑

4 腊八节送祝福,敬老院里送温暖

5 【年·记忆】在山城永寿过年

6 【年·记忆】淘粮食碨过年面

7 肇庆申办中国足球职业联赛 接受中国足协考察团检验

8 八旬老人险些坠楼 江阴两位热心市民一个托举、一个牵拉

9 喜马拉雅年度优秀开发者评选结果出炉,这些品牌上榜

10 速破涉疫造谣案 “一拖二”被处罚

11 酒后驾车途中被查 瘫倒在地尿湿裤子

12 男子偷别人的外卖吃 真的是为生活所迫?

13 腊八粥暖心,乌铁青年团员为坚守岗位干部职工和旅客送温暖

14 消防员背70多斤设备险坠楼 获救后他这么说...

15 中山市多个智造公共服务平台预计春节前后迎来施工安装小高峰

16 携程联合人民网发起安心过年公益计划

17 新疆博尔塔拉州精河县发生3.0级地震,震源深度17千米

18 女子腹痛难忍 竟是被一根5厘米长鱼骨穿肠了!

19 杭州野生动物世界为动物特制“腊八大餐”

20 真正的富有,是你脸上的微笑

21 孙悟空也玩穿越 《西游记》的“同人文”有多奇幻?

22 8岁小男孩警务室报警:有个3岁小孩跟家人走散了

23 睡前聊一会儿 | 一个差评都没有的店,你会去吗?

24 弟弟酒驾让哥哥“背锅”交警根据签名还原事实

25 关于年终奖,这份调查报告有你感兴趣的内容……

26 大寒之后再坚持一周进入五九 气温日渐回暖

27 时隔19年 大寒与腊八再度喜相逢

28 辞旧迎新从“头”开始 年关临近青岛美发店生意红火

29 骗子盯上“假期档”厦门警方提醒防范三类寒假骗术

30 男子轻信“刷单致富” 成为洗钱帮凶

历史上的今天

1 在745年前的今天,1276年1月21日 (农历正月初四),英诺森五世任第185任教皇。

2 在228年前的今天,1793年1月21日 (农历腊月初十),法王路易十六被送上断头台。

3 在151年前的今天,1870年1月21日 (农历腊月二十),俄国杰出的哲学家、思想家、作家赫尔岑逝世。

4 在144年前的今天,1877年1月21日 (农历腊月初八),中国近代第一位驻外使节郭嵩焘赴英。

5 在136年前的今天,1885年1月21日 (农历腊月初六),日本战犯、陆军大将板垣征四郎出生。

6 在134年前的今天,1887年1月21日 (农历腊月廿八),美籍德国心理学家、格式塔心理学的创始人之一克勒出生。

7 在129年前的今天,1892年1月21日 (农历腊月廿二),英国著名天文学家亚当斯逝世。

8 在126年前的今天,1895年1月21日 (农历腊月廿六),日本决定占领钓鱼岛。

9 在122年前的今天,1899年1月21日 (农历腊月初十),欧宝公司开始生产汽车。

10 在121年前的今天,1900年1月21日 (农历腊月廿一),加拿大军队启程前往南非参加布尔战争。

11 在110年前的今天,1911年1月21日 (农历腊月廿一),美国劳斯首次提出癌肿瘤是病毒所致。

12 在102年前的今天,1919年1月21日 (农历腊月二十),李熙朝鲜高宗逝世。

13 在97年前的今天,1924年1月21日 (农历腊月十六),列宁逝世。

14 在95年前的今天,1926年1月21日 (农历腊月初八),意大利著名神经学家、病理学家戈尔吉逝世。

15 在91年前的今天,1930年1月21日 (农历腊月廿二),伦敦海军会议开幕。

16 在87年前的今天,1934年1月21日 (农历腊月初七),中华苏维埃第二次全国代表大会召开。

17 在85年前的今天,1936年1月21日 (农历腊月廿七),“爱江山还是爱美人”——英王爱德华八世的痛苦选择。

18 在84年前的今天,1937年1月21日 (农历腊月初九),红军西路军西征失败,董振堂牺牲。

19 在84年前的今天,1937年1月21日 (农历腊月初九),抗日红军大学易名抗日军政大学。

20 在83年前的今天,1938年1月21日 (农历腊月二十),中国电影制片厂成立,总部设在昆明。

21 在75年前的今天,1946年1月21日 (农历腊月十九),国民党政府将汪精卫坟墓炸毁。

22 在74年前的今天,1947年1月21日 (农历腊月三十),欧洲经历1883年以来最寒冷的冬天。

23 在74年前的今天,1947年1月21日 (农历腊月三十),乔治·马歇尔被任命为美国国务卿。

24 在73年前的今天,1948年1月21日 (农历腊月十一),台湾企业家,英业达集团副董事长温世仁出生。

25 1949年1月21日 (农历腊月廿三),蒋介石宣布“引退”,李宗仁任代理总统。

26 1950年1月21日 (农历腊月初四),英国作家乔治·奥韦尔去世。

27 1951年1月21日 (农历腊月十四),中国人民志愿军空军在朝鲜战场上首次参加实战。

28 1951年1月21日 (农历腊月十四),阿尔卑斯山发生巨大雪崩。

29 1953年1月21日 (农历腊月初七),微软创始人之一 保罗·艾伦出生。

30 1954年1月21日 (农历腊月十七),世界上第一艘核动力潜艇“鹦鹉螺”号下水。

31 1955年1月21日 (农历腊月廿八),中国评剧院成立。

32 1958年1月21日 (农历腊月初二),委内瑞拉人民起义爆发。

33 1960年1月21日 (农历腊月廿三),人类第一次将动物送入太空。

34 1960年1月21日 (农历腊月廿三),日本漫画家永野护出生。

35 1963年1月21日 (农历腊月廿六),非洲裔美国篮球运动员奥拉朱旺出生。

36 1963年1月21日 (农历腊月廿六),“雷锋班”称号的命名大会举行。

37 1970年1月21日 (农历腊月十四),美国波音747喷气客机首次飞行。

38 1976年1月21日 (农历腊月廿一),两架协和式超音速客机,作首次商业飞行。

39 1976年1月21日 (农历腊月廿一),毛泽东提议华国锋任国务院代总理并主持中央常工作。

40 1977年1月21日 (农历腊月初三),西藏昌都地区首次发现恐龙化石。

41 1991年1月21日 (农历腊月初六),周培源奖用金设立。

42 1996年1月21日 (农历腊月初二),北京西客站开通运营。

43 2002年1月21日 (农历腊月初九),援阿重建国际会议开幕。

44 2006年1月21日 (农历腊月廿二),易卜拉欣·鲁戈瓦,科索沃总统,终年61岁。

百度统计 站长统计

©2018-2021 www.ntbk8.cn. All rights reserved.  蜀ICP备18006425号

友情链接:  若岚博客  vipbic  卢松松博客  快云vps  Geticsen  聚宝盆  飞之梦工作室  7分钟课堂  提交友链