Welcome 微信登录

首页 / 正则表达式

半小时精通正则表达式 经典实例介绍

半小时精通正则表达式 经典实例介绍

开篇,还是得说说 ^ 和 $ 他们是分别用来匹配字符串的开始和结束,以下分别举例说明 如果您是新手,猜你取消 正则表达式30分钟入门教程"^The": 开头一定要有"The"字符串; "of despair$": 结尾一定要有"of despair" 的字符串; 那么, "^abc$": 就是要求以abc开头和以abc结尾的字符串,实际上是只有abc匹配 "notice": 匹配包含notice的字符串 你可以看见如果你没有用我们提到的两个字符(最后一个例...
PHP中的递归正则表达式用法分享

PHP中的递归正则表达式用法分享

什么时候会用到递归正则表达式呢? 当然是待匹配的字串中递归地出现某种模式时(貌似废话). 最经典的例子, 就是递归正则处理嵌套括号的问题了. 例子如下. 假设你的文本中包含了正确配对的嵌套括号. 括号的深度可以是无限层. 你想捕获这样的括号组. 复制代码 代码如下: <?php $string = "some text (a(b(c)d)e) more text"; if(preg_match("/(([^()]+|(?R))*)/",$string...
解决preg_match匹配过多字符长度的限制的思路分析

解决preg_match匹配过多字符长度的限制的思路分析

但是官方的文档里面没有说明这一点。 于是开始测试:将要匹配的字串不断缩短,直到缩为原来1/5的时候可以正常匹配了,所以更加确定了。 到google里一搜,终于找到了解决方案:在php.ini中加入(随便放到哪里,我是直接放第一行的) pcre.backtrack_limit=-1 再次使用preg_match函数测试一下,大概1300多行上万个字符的字符串也能够匹配了。 项目中,用preg_match正则提取目标内容,死活有问题,代码测得死去活来。 后来发...
学习正则!超基础简单例子

学习正则!超基础简单例子

问题是这样的,某个情况下要给:http://jb51.net?a=1 这类url地址追加参数变为:http://jb51.net?a=1&b=2 但是怎么知道已经存在相同参数名呢,例如有这种情况:http://jb51.net?a=1&a=2 这个虽然不会有什么大错误,但是地址栏这样看起来很不好。那怎么办呢?用正则解决吧(本来我想用php的字符串处理解决的,但是后来觉得要学一下正则了就用正则做吧) 以下是我用于返回上一页的后台处理方法 复制代码 代码如下:...
匹配5到10位无重复数字的正则表达式

匹配5到10位无重复数字的正则表达式

对于有重复的5到10位数字可以使用d{5,10} 这样的正则 无重复的5到10位数字我考虑了一下还不会,最然只好查网上。 有一个版本还不错,反正RegexBuddy测试通过了。 复制代码 代码如下:^(?!d*?(d)d*?1)d{5,10}$对于(?!………(……)………1)这样的形式我还没有研究透,有时间我真要细细研究。 上一个php的例子: 复制代码 代码如下: <?php $str = "123456789"; $search = "/^(?...
DW 查找某字符串前的所有字符的正则表达式

DW 查找某字符串前的所有字符的正则表达式

我使用DW 这个所见所得的编辑器来写html时,喜欢写上注释,如<!-- header --> 等等的注释,在一次比较大的改动时,需要批量查找替换,为了批量操作,于是我写了一个正则表达式来进行处理。 查找: 复制代码 代码如下: ( | |.)*?<!-- header --> 效果如图: 还有一个常用的就是字符串之间的字符 如:查找<!-- header start --> 到<!-- header end ...
正则表达式教程之模式修正符使用介绍

正则表达式教程之模式修正符使用介绍

之前我们给大家介绍了正则表达式中的定界符、原子和元字符,那么我们关于正则表达式教程的基本语法就剩下了正则表达式中的模式修正符。本节会向大家介绍模式修正符的概念、模式修正符的构成,以及结合实例的模式修正符的演示,大家在学习完本节内容之后,就完全可以读懂正则表达式了。 什么是模式修正符? 1, 模式修正符就是几个字母,我们在每个正则表达式中可以一次使用一个,也可以连续使用多个,每一个具一定的意义。 2, 模式修正符是对整个正则表达式调优使用,也可以说是对正则表...
正则中需要转义的特殊字符小结

正则中需要转义的特殊字符小结

如果要查找文件名中有*的文件,则需要对*进行转义,即在其前加一个。ls *.txt。正则表达式有以下特殊字符。需要转义 特别字符说明$匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘ " 或 ‘ "。要匹配 $ 字符本身,请使用 $。( )标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。*匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。+匹...
完美Email验证正则表达式

完美Email验证正则表达式

际域名格式如下: 域名由各国文字的特定字符集、英文字母、数字及“-”(即连字符或减号)任意组合而成, 但开头及结尾均不能含有“-”,“-”不能连续出现 。 域名中字母不分大小写。域名最长可达60个字节(包括后缀.com、.net、.org等)。 /^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?$/i; /内容/i 构成一个不区分大小...
让editplus3 函数模板完全显示函数

让editplus3 函数模板完全显示函数

我是常常使用editplus ,主要是它启动快,文件小,自定义代码,绿色。发现当用他打开php有一个快捷键ctrl+F11可以打开函数列表,也就是文件内所有的函数名会显示在列表中,双击会选中函数,非常方便但是默认安装好editplus 3 不支持面向对象的方法 如 final、static 的显示 ,于是我看了下函数模板的设置,也是用正则表达式的配置,轻松改好正则OKl了,正则如:复制代码 代码如下:^[ ]*(public |private |prot...
正则表达式其实就是一个特殊的字符串

正则表达式其实就是一个特殊的字符串

java正则表达式提供了比较丰富的类库,大大简化了这个过程。下面列出常用的基本语法: * + ? ^ $ [] () | / d D w W {} {n} {n,m}等, 要注意的是“|”或符号。它可以匹配单个字符和字符串。如:t[aeio]n只匹配tan,ten,tin,ton。但不匹配toon,因为在方括号内只能匹配单个字符,要匹配toon,使用t(a|e|i|o|oo)n就可以实现toon。 正则表达式就是个熟练的过程,没有什么太过于抽象的地方。其...
正则用(?&gt;…)实现固化分组提高效率

正则用(?&amp;gt;…)实现固化分组提高效率

具体来说,使用「(?>…)」的匹配与正常的匹配并无差别,但是如果匹配进行到此结构之后(也就是,进行到闭括号之后),那么此结构体中的所有备用状态都会被放弃(不能被回溯)。 也就是说,在固化分组匹配结束时,它已经匹配的文本已经固化为一个单元,只能作为整体而保留或放弃。括号内的子表达式中未尝试过的备用状态都不复存在了,所以回溯永远也不能选择其中的状态(至少是,当此结构匹配完成时,“锁定(locked in)”在其中的状态)。 例子: 比如要处理一批...
编程语言中十六进制的正则匹配

编程语言中十六进制的正则匹配

它由0-9,A-F,组成。与10进制的对应关系是:0-9对应0-9;A-F对应10-15;N进制的数可以用0---(N-1)的数表示超过9的用字母A-F。 也就是由字符:012345679ABCDEF 组成 C语言中的16进制数必须以 0x开头。比如 0x1表示一个16进制数。而1则表示一个十进制。另外如:0xff,0xFF,0X102A,等等。其中的x也不区分大小写。(注意:0x中的0是数字0,而不是字母O) 所以C或C++等编程语言的正则匹配为: 复制...
正则表达式之 贪婪与非贪婪模式详解(概述)

正则表达式之 贪婪与非贪婪模式详解(概述)

1 概述 贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配。非贪婪模式只被部分NFA引擎所支持。 属于贪婪模式的量词,也叫做匹配优先量词,包括: “{m,n}”、“{m,}”、“?”、“*”和“+”。 在一些使用NFA引擎的语言中,在匹配优先量词后加上“?”,即变成属于非贪婪模式的量词,也叫做忽略优先量词,包括: “{m,n}?”、“{m,...
正则基础之 神奇的转义

正则基础之 神奇的转义

1 概述这或许会是一个让人迷惑,甚至感到混乱的话题,但也正因为如此,才有了讨论的必要。在正则中,一些具有特殊意义的字符,或是字符序列,被称作元字符,如“?”表示被修饰的子表达式匹配0次或1次,“(?i)”表示忽略大小写的匹配模式等等。而当这些元字符被要求匹配其本身时,就要进行转义处理了。不同的语言或应用场景下,正则定义方式、元字符出现的位置不同,转义的方式也是林林总总,不一而同。2 .NET正则中的字符转义2.1 .NET正则中的转义符绝大多数语言中,“”...
<< 61 62 63 64 65 66 67 68 69 70 >>