PHP正则表达式_python正则匹配字母

PHP正则表达式_python正则匹配字母一、正则表达式语法(Perl风格)1、模式规则  /php/字符串前后加上两条斜杠即可2、匹配函数  preg_match(‘/php/’,php)  参数1模式  参数2字符串二、正则表达式中的元素介绍  1、正则表达式中包含三种元素分别为:量词、元字符、修饰符  2、前导字符串:就是符号前面的一个字符或字符串量词…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

一、正则表达式语法(Perl风格)

1、模式规则
  /php/ 字符串前后加上两条斜杠即可

2、匹配函数
   preg_match(’/php/’,php)
  参数1 模式
  参数2 字符串


二、正则表达式中的元素

介绍
  1、正则表达式中包含三种元素分别为:量词、元字符、修饰符
  2、前导字符串:就是符号前面的一个字符或字符串

量词

量词 说明
+ 匹配任何至少包含一个前导字符串
* 匹配任何包含零个或多个前导字符串
? 匹配任何包含零个或1个前导字符串
. 匹配任意一个字符串
{x} 匹配任何包含x个前导字符串
{x,y} 匹配任何包含 x 到 y 个前导字符串
{x,} 匹配任何包含至少x个前导字符串
^ 匹配字符串的行首
$ 匹配字符串的行尾
| 选择符 匹配字符串的左边或者右边
() 分组,提取

 //量词 //preg_match()函数匹配成功返回1,失败返回0 echo preg_match('/a+/','abc');//返回1 echo preg_match('/a*/','abc');//返回1 echo preg_match('/a?/','abc');//返回1 echo preg_match('/./','abc');//返回1 echo preg_match('/a{2}/','aabc');//返回1 echo preg_match('/a{2,5}/','aaabc');//返回1 echo preg_match('/a{2,}/','aaaaabc');//返回1 echo preg_match('/^a/','bac');//返回0 echo preg_match('/^a/','abc');//返回1 echo preg_match('/a$/','abc');//返回0 echo preg_match('/a$/','cba');//返回1 echo preg_match('/a|b/','a');//返回1 echo preg_match('/a|b/','b');//返回1 echo preg_match('/(abc)+/','abcd');//返回1 

Jetbrains全家桶1年46,售后保障稳定

元字符

元字符 说明
[a-z] 匹配任何包含小写字母a-z的字符串
[A-Z] 匹配任何包含大写字母A-Z的字符串
[0-9] 匹配任何包含0-9的字符串
[abc] 匹配任何包含小写字母a,b,c的字符串
[^abc] 匹配任何不包含小写字母a,b,c的字符串
[a-zA-Z0-9_] 匹配任何包含a-zA-Z0-9和下划线的字符串
\w 匹配任何包含a-zA-Z0-9和下划线的字符串
\W 匹配任何不包含a-zA-Z0-9和下划线的字符串
\d 匹配任何包含数字字符
\D 匹配任何非数字字符
\s 匹配任何空白字符
\S 匹配任何非空白字符
\b 匹配是否到达了单词边界
\B 匹配没有到达了单词边界
\ 匹配正则中的特殊字符

 //元字符 echo preg_match('/[a-z]/','abc');//返回1 echo preg_match('/[A-Z]/','ABC');//返回1 echo preg_match('/[0-9]/','123');//返回1 echo preg_match('/[abc]/', 'a');//返回1 echo preg_match('/[^abc]/', 'd');//返回1 echo preg_match('/[a-zA-Z0-9_]/', 'aD45_');//返回1 echo preg_match('/\w/', 'aD45_');//返回1 echo preg_match('/\W/', 'aD45_');//返回0 echo preg_match('/\d/', '123456');//返回1 echo preg_match('/\D/', '123456');//返回0 echo preg_match('/\d/', '123456');//返回1 echo preg_match('/\s/', ' ');//返回1 echo preg_match('/\S/', ' ');//返回0 //单词尾部边界 echo preg_match('/at\b/', 'cat');//返回1 //头单词部边界 echo preg_match('/\bat/', 'attribute');//返回1 //没有到达边界 echo preg_match('/\Bat/', 'attribute');//返回0 //特殊字符 $ ^ * () + = {} [] | \\ : <> echo preg_match('/\$/', '$');//返回1 

修饰符

修饰符 说明
i 完全不区分大小写
m 可以采用多行识别,遇到换行也承认匹配规则
x 忽略掉规则模式中的空白字符
A 强制从头开始匹配
U 禁止贪婪匹配,只跟踪到最近的一个匹配符并结束

 //修饰符 //i 不区分大小写 echo preg_match('/abcd/','AbcD');//返回0 echo preg_match('/abcd/i','AbcD');//返回1 //m 多行识别 $str = '1a 1a'; preg_match_all('/^1a/',$str,$arr); print_r($arr); //结果为Array ( [0] => Array ( [0] => 1a ) ) //默认从头到尾匹配,所以只匹配到一个 preg_match_all('/^1a/m',$str,$arr);//返回1 print_r($arr); //结果为Array ( [0] => Array ( [0] => 1a [1] => 1a ) ) //每行都会使用规则,所以匹配的到二个,注意第二行前面不要有空格避免干扰 //x 忽略模式的空格 echo preg_match('/a b/','ab');//返回0 echo preg_match('/a b/x','ab');//返回1 //A 强制开头匹配 echo preg_match('/ab/','catabc');//返回1 echo preg_match('/ab/A','catabc');//返回0 echo preg_match('/ab/A','abcdef');//返回1 //U 禁止贪婪匹配 preg_match_all('/php\w+php/','php123phpphp456php',$arr); print_r($arr); //结果为Array ( [0] => Array ( [0] => php123phpphp456php ) ) preg_match_all('/php\w+php/U','php123phpphp456php',$arr); print_r($arr); //结果为Array ( [0] => Array ( [0] => php123php [1] => php456php ) ) //禁止贪婪匹配后,会就近匹配 

三、Perl风格函数

1、preg_grep()
  搜索数组中的所有元素,返回与某个模式匹配的字符串数组

2、preg_match()
  搜索模式,匹配返回true,不匹配返回false

3、preg_match_all()
  在字符串匹配模式的所有出现,然后将所有匹配的全部放入数组

4、preg_quote()
  将特殊字符转义
  特殊字符包含 $ ^ * () + = {} [] | \ : <>
  定界正则,在每一个对于正则表达式语法而言有特殊含义的字符前插入一个反斜杠

5、preg_replace()
  替换模式的所有出现,然后替换成想要的字符串返回出来

6、preg_split()
  以不区分大小写将字符串划分不同的元素

 //风格函数 //preg_grep() $arr = array('php5','php6','php7','css','html'); $out = preg_grep('/php[0-9]/', $arr); print_r($out); //结果为Array ( [0] => php5 [1] => php6 [2] => php7 ) //preg_match() echo preg_match('/php[0-9]/','php5');//返回1 //preg_match_all() preg_match_all('/php[0-9]/','php5php6php7',$arr); print_r($arr); //结果为Array ( [0] => Array ( [0] => php5 [1] => php6 [2] => php7 ) ) //preg_quote() echo preg_quote(' $ ^ * () + = {} [] | \\ : <>'); //结果为 \$ \^ \* \(\) \+ \= \{\} \[\] \| \\ \: \<\> //preg_replace() echo preg_replace('/php/','python', 'php1php2php3'); //结果为 python1python2python3 //preg_split() $str = preg_split('/a/', 'cbabc'); print_r($str); //结果为rray ( [0] => cb [1] => bc ) 



学习总结

  学习好正则表达式,不是一朝一夕的事,要掌握好这些基本的元素。量词、元字符、修饰符,每个都不能忽视,搭配起来使用,多多练习才能熟能生巧。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200730.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 百度快照更新周期、百度收录更新时间[通俗易懂]

    百度快照更新周期、百度收录更新时间[通俗易懂]很多做SEO的都不清楚百度快照的更新周期,所以很多时候都不能有针对性的对网站进行操作,错过了很多机会。百度收录的更新日期一般是每个月的11号和26号,特别是26号,更新最大,但K站也是最多的。另外百度也有一个小的更新的日期,即每周四凌晨4点左右,对网站的访问量没有什么效果,只有到了中午的日期,百度对网站关键字的搜索停止重新调整之后,才会有访问量上的大的变化,有升有降。总体上来说是大致为一个

    2022年9月27日
    0
  • 矩阵求逆 c语言_求矩阵各列的平均值C语言

    矩阵求逆 c语言_求矩阵各列的平均值C语言#include#defineN10intgetA(intarcs[N][N],intn)//按第一行展开计算|A|{ if(n==1) { returnarcs[0][0]; } intans=0; inttemp[N][N]; int

    2022年8月21日
    2
  • Jxls异常 Cannot load XLS transformer. Please make sure a Transformer impleme

    Jxls异常 Cannot load XLS transformer. Please make sure a Transformer impleme错误:CannotloadXLStransformer.PleasemakesureaTransformerimplementationisinclasspath原因:这是jxls的版本升级2.4后需要额外导入其他依赖<dependency><groupId>org.jxls</groupId><artifactId>jxls-jexcel</artifactId.

    2022年7月24日
    12
  • oracle sequence用法_oracle赋值

    oracle sequence用法_oracle赋值创建sequence:createsequenceseq_testincrementby1startwith1noMaxValuenoCyclecache10;createsequenceseq_test2minvalue1maxvalue21startwith1incrementby1cache20cycleorder;minValue:指定序列最小值。maxV…

    2022年10月19日
    0
  • 外汇百科

    外汇百科
    外汇百科名片  外汇
    外汇是以外币表示的用于国际结算的支付凭证。国际货币基金组织对外汇的解释为:外汇是货币行政当局(中央银行、货币机构、外汇平准基金和财政部)以银行存款、财政部库券、长短期政府证券等形式所保有的在国际收支逆差时可以使用的债权。包括:外国货币、外币存款、外币有价证券(政府公债、国库券、公司债券、股票等)、外币支付凭证(票据、银行存款凭证、邮政储蓄凭证等)。
    目录简介外汇市场TransMarket集团FXSolutionsIFX与IFX(俗称FXSOL)?FX

    2022年9月10日
    0
  • 进销存excel_用Excel制作简单的进销存系统「建议收藏」

    进销存excel_用Excel制作简单的进销存系统「建议收藏」最近刚好帮一个朋友做一个进销存系统,因为使用者对电脑操作以及Excel应用能力较弱,我做的进销存系统没有用特别复杂的功能,非常有解决意义,我将手把手将你制作一个简单的进销存系统。需求描述朋友找人合伙开了一个女装店,想要用Excel记录每天的销售数据、定期的进货数据,以及定期盘点库存情况。朋友的合伙人对电脑操作、Excel数据管理能力较弱,前期购买过专用的进销存软件,但是经常会把数据搞乱,因此放弃了…

    2022年5月31日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号