php的特殊正则

来源:网络    更新时间:2019-12-13 23:42:08    编辑:用户1gt2d    浏览:338

执行结果:

解析:

1、(?<=【)

第一个表达式是一个『非获取匹配』,即匹配括号,但并不获取括号;

2、[^】]+

第二个表达式中[]匹配单个字符,^】代表除了】的字符,+是限定符代表匹配前面子表达式一次或多次,即匹配除了】的连续多个字符;

组合起来即实现了预期效果~

示例:

$strContentInfo = 'tdiv class="abc"ttdiv class="def"t内容t/divttdiv class="def"t内容222t/divtt/divt';

preg_match_all('/tdiv class[^t].*?t((?>[^t\/divt]+|(?R))*)t\/divt/is', $strContentInfo,$matches);

print_r($matches);

其他:

正则表达式的定界符。 除了字母、数字和反斜线\以外的任何字符都可以为定界符号,比如 | |、//、{}、!!等等,但是需要注意,如果没有特殊需要,我们都使用正斜线//作为正则表达式的定界符号。

匹配未知层次的嵌套:

有的正则表达式引擎,专门针对这种嵌套提供了支持。并且在栈空间允许的情况下,能够支持任意未知层次的嵌套:比如 Perl,PHP,GRETA 等。在 PHP 和 GRETA 中,表达式中使用 "(?R)" 来表示嵌套部分。

匹配嵌套了未知层次的 "小括号对" 的表达式写法如下:"\( ([^()] | (?R))* \)"。

模式修正符i:不区分大小写。

m:将字符串通过分隔符进行分割,将字符串中的每一行分别进行匹配。

e: 将匹配出来的内容做一些php语法上的处理。

s: 修正 "." 的换行。

U: 取消贪婪模式。

x: 忽略模式中的空白符。

A: 必须以这个模式开头。

D: 修正 "$" 对 "\n" 的忽略。

u: 做 utf-8 中文匹配的时候使用。

g:该表达式可以进行全局匹配。

贪婪模式

$str ="abcbcd";

$pattern = '/.*/';

preg_match_all($pattern,$str, $matches);

print_r($matches);

这时会匹配出abcbcd,显然不是我想要的结果

如果$pattern = '/.*?/'; 就是我想要的。

所以此处我们要使用 .*?来取消贪婪,?代表匹配前面的内容 0 次或者 1次。

当然取消贪婪还有一种写法:就是在后面加上一个 U ,即:$pattern = '/.*/U';

但是切记不能 .*? 和 U 一起用。

命名捕获组

格式:(?P) 调用方式 (?P=组名)

$regex = '/(?Pchuanshanjia)[\s]Is[\s](?P=author)/i';

$str = 'author:chuanshanjia Is chuanshanjia';

$matches = array();

if(preg_match($regex, $str, $matches)){

var_dump($matches);

}

echo "\n";

正则表达式的注释

格式:(?# 注释内容)

用途:主要用于复杂的注释

贡献代码:是一个用于连接MYSQL数据库的正则表达式

$regex = '/

^host=(?

\|

([\w!@#$%^&*()_+\-]+)      (?#用户名)

\|

([\w!@#$%^&*()_+\-]+)      (?#密码)

(?!\|)$/ix';

$str = 'host=192.168.10.221|root|123456';

$matches = array();

if(preg_match($regex, $str, $matches)){

var_dump($matches);

}

echo "\n";

php 正则匹配特殊 x20,php的特殊正则相关推荐

  1. php正则匹配是否为url地址,php正则匹配网址-正则php-php正则匹配url地址

    php正则表达式 正则匹配网址是否带http:// https:// if(preg_match("/\x20*https?\:\/\/.*/i","",$m) ...

  2. php正则匹配中文和英文字母,PHP正则匹配中文字母数字正则的表达式

    PHP正则匹配中文字母数字正则的表达式 PHP语言是一门实用性很强的语言,下面小编为大家带来了关于PHP正则匹配中文字母数字正则的'表达式,欢迎大家阅读! PHP正则匹配中文字母数字正则的表达式 代码 ...

  3. java正则匹配第一个符合的_java正则贪婪匹配指定字符开头和结尾或括号中内容...

    项目中需要这样二种场景,需要贪婪匹配一个字符串,按照相应的匹配规则,替换指定的字符. 一.场景一匹配规则 1.中括号开头紧接2位数字 2.中间部分任意 3.右中括号结尾 代码如下: String st ...

  4. js正则匹配小数点后2位_JS正则匹配小数点后两位

    坑爹的测试,非要搞限制输入到小数点两位. 第一种方法:parseFloat() 函数可解析一个字符串,并返回一个浮点数.该函数指定字符串中的首个字符是否是数字.如果是,则对字符串进行解析,直到到达数字 ...

  5. js正则匹配小数点后2位_正则实践与详解

    一:关于数字: 1.全为数字: /^d*$/ d:匹配数字 a*:0或多次a ^a: a开头 a$:a结尾 2.至少n位数字:/^d{n,}$/ a{n}:a指定n次 a{n,}:a至少n次 a{n, ...

  6. python正则匹配括号内任意字符,python 正则匹配 获取括号内字符

    一.需求 * 提取字典中的[]内的字符,生成可以导入到五笔词库中的txt文件. 原文件: 生成后的结果: 实现方式 前言 因为正则表达式语法很难读,因此本次程序以多次的方式来讲解. 一.提取[]内内容 ...

  7. 正则匹配所有包括换行符

    项目中需要用到爬虫,需要用到正则匹配字符,很久没用正则了. 匹配所有字符包括换行符: reg :=regexp.MustCompile("<title>[\\s\\S]*< ...

  8. php省市区地址匹配,PHP简单实现正则匹配省市区的方法讲解

    这篇文章主要介绍了PHP简单实现正则匹配省市区的方法,涉及php正则匹配.判断.运算等相关操作技巧,需要的朋友可以参考下 本文实例讲述了PHP简单实现正则匹配省市区的方法.分享给大家供大家参考,具体如 ...

  9. php 正则匹配乱码,php正则匹配utf-8编码的中文汉字

    在javascript中,要判断字符串是中文是很简单的.比如: var str = "php编程"; if (/^[\u4e00-\u9fa5]+$/.test(str)) { a ...

最新文章

  1. hibernate 和 mybatis 的区别
  2. 应用语言学 计算机语言学,应用语言学的名词解释
  3. 书脊开胶了用什么胶粘_画册印制1万本,结果一本不能用,这些问题你注意了吗...
  4. SprintBoot中JPA的使用
  5. inmemory_通过Spring Boot了解H2 InMemory数据库
  6. 空军军医大学计算机复试线,空军军医大学2019年考研复试分数线
  7. CSDN 开学见面礼!3 周带你 Get 大厂工程师基础能力
  8. java 支付宝转账_Java 支付宝支付,退款,单笔转账到支付宝账户(支付宝订单退款)...
  9. /dev/hda5在linux中表示什么,linux
  10. Java学习路线总结(思维导图篇)
  11. 《Redis设计与实现》知识点目录
  12. 企业微信API群机器人配置
  13. ElasticJob - 任务执行过程解析
  14. Transformer论文阅读(一):CoTr: Efficiently Bridging CNN and Transformer for 3D Medical Image Segmentation
  15. 【树莓派】利用tesseract进行汉字识别
  16. java后端生成图形验证码、前端接收并展示
  17. 面试必问 | HBase最新面试总结
  18. ISP-坏点校正(DPC)
  19. 动态规划-矩阵中的最短路径
  20. datagrid之修改

热门文章

  1. psd文件删除了怎么恢复?psd文件被覆盖能恢复吗?
  2. 被清理的文件怎么恢复
  3. 网易网盾滑块验证码 acToken参数分析
  4. 大学物理实验试卷1到8_大学物理实验模拟试题123《试题》
  5. Kafka Strem
  6. zzuli 20级第八次周赛 2751: XZQ与字符串
  7. 苹果微信推送服务器错误,接入WxPusher微信推送服务出现错误:Content type application/x...
  8. 剑指Offer---2021/7/19
  9. 小白必看!路由器NAT技术
  10. 解决Win11安装PS2022版本卡顿闪退问题 win11安装Photoshop2022闪退卡顿问题解决方案