正则表达式原由JavaScript提出,后来应用于其它语言体系,成了一种独立的匹配技术。但是PHP的正则比标准javascript的要强大,js的正则库在PHP正则面前显得只是一个简约的基础库。
无论JavaScript、php、mysql还是nginx,正规则思路都是通用的,但具体的规则应用还是有区别的。我测试过部分通过在线测试的工具已经调通的情况下,但移植到PHP的应用中时却无法匹配,但基本规则还是一样的,我觉得需要特别注意的就是结尾后的标记符 //igms这种,正则表达式的优势就是模糊匹配的能力也是一种核心技术。
一、基本生成方法
字母前后各加一个斜杆。如:
var a = /http/;
二、常用标记(可选)
i:大小写不敏感;
g:全局匹配;
m:多行匹配;如:
var a = /http/i;
三、生成模式
一、位置指示
^和$表示开头和结尾。如:
var a = /^http$/i;
二、转义码(反斜杆)转义
字符串表示式中可能有冲突的/、^、$等正规表达式也使用到的符号。
常用的转义字符及其含义:
\’ 单引号
\” 双引号
\\ 反斜杠
\0 空
\a 警告(产生峰鸣)
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
如用转义符匹配”http://www.w3w.org/”的正则表达式:
var parttern = /http:\/\/www\.\w3w\.org\//
三、反复计算器确认计算次数。
* 0或多次
+ 1或多次
? 0或多1次
{m,n} 最少m次,最多n次
{m,} m次或更多次
{m} m次
var parttern = /^(\w+)|[\d]-)/;
四、过度匹配
为了防止正规表达式的过度匹配必须指定精确的条件。
五、分组和字符类
匹配一串字符时可以用破折号指定取值范围。如
var parttern = /[0-9]/
var parttern = /[a-z]/
任何大小写字母:
var parttern =/[a-zA-Z0-9]/
但字符串中有$%等特殊字符不能直接匹配,需要转义。
六、子表达式加上括号表示一个匹配单元。
var parttern = /(w+)([\d-]+)/;
七、可选量
用“|”表示几个可选条目,逻辑或关系。
var parttern = /^(thtp)|(https)/;
正则表达式看起来象天书一样,用处其实很大。
版权声明:除特别声明外,本站所有文章皆是本站原创,转载请以超链接形式注明出处!