掌握 PHP 中的正则表达式 二
原文:http://www.ibm.com/developerworks/cn/opensource/os-php-regex2/
在上回,接触了常见 regex 操作符,这里将介绍一些特殊 regex 操作符:
1、括号 () 的功能;
2、子模式限定符
3、regex 末尾的
regex
/---------------/
4、子模式修饰词是
5、子模式修饰词是
实例练习
例1
例2 嵌入空白和注释
其它应用
regex 的另一个应用是格式化、规范化或提高数据的可读性。格式化不是使用 regex 查找和提取文本,而是使用 regex 查找并在正确位置插入文本。
如下列,将美元金额转换为数字
在上回,接触了常见 regex 操作符,这里将介绍一些特殊 regex 操作符:
1、括号 () 的功能;
2、子模式限定符
?:
:它的功能是禁用捕捉;3、regex 末尾的
i
修饰语 :模式内的所有匹配都不区分大小写;regex
((?i)edu)
:它只表示子模式不分大小写; /---------------/
i
:它表示整个模式不分大小写;4、子模式修饰词是
(?x)
:另一个有用的子模式修饰词,它允许您在子模式中嵌入空白;((?x) edu | com | info)
:与 (edu|com|info)
相同/
... /x
: 在整个 regex 中嵌入空白和注释5、子模式修饰词是
?<=
:即向左查找(向后查找)
6、子模式修饰词是 ?=
:即向右查找(向前查找)实例练习
例1
/[-a-z0-9]+(?:\.[-a-z0-9]+)*\.(?:com|edu|info)/i
(?:\.[-a-z0-9]+)*
将匹配零个或多个字符串实例(例如 “.ibm”)\.(?:com|edu|info)
表示句点,后接字符串 com
、edu
或 info
中的任意一个例2 嵌入空白和注释
$matches = preg_grep(
"/
[- a-z 0-9]+ # machine name
(?: \. [- a-z 0-9]+)* # subdomains
\. (?: com | edu | info)# domain
/xi", $words );
"/
[- a-z 0-9]+ # machine name
(?: \. [- a-z 0-9]+)* # subdomains
\. (?: com | edu | info)# domain
/xi", $words );
其它应用
regex 的另一个应用是格式化、规范化或提高数据的可读性。格式化不是使用 regex 查找和提取文本,而是使用 regex 查找并在正确位置插入文本。
如下列,将美元金额转换为数字
Code