掌握 PHP 中的正则表达式 二
生活随笔
收集整理的這篇文章主要介紹了
掌握 PHP 中的正则表达式 二
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
原文:http://www.ibm.com/developerworks/cn/opensource/os-php-regex2/
在上回,接觸了常見 regex 操作符,這里將介紹一些特殊? regex 操作符:
1、括號(hào)? ()? 的功能;
2、子模式限定符 ?:??? :它的功能是禁用捕捉;
3、regex 末尾的 i? 修飾語??? :模式內(nèi)的所有匹配都不區(qū)分大小寫;
??? regex ((?i)edu) :它只表示子模式不分大小寫;??
?? /---------------/i ? :它表示整個(gè)模式不分大小寫;
4、子模式修飾詞是 (?x) ? :另一個(gè)有用的子模式修飾詞,它允許您在子模式中嵌入空白;
((?x) edu | com | info) :與 (edu|com|info) 相同
/ ... /x?????? :? 在整個(gè) regex 中嵌入空白和注釋
5、子模式修飾詞是 ?<= :即向左查找(向后查找)
6、子模式修飾詞是 ?= :即向右查找(向前查找)
實(shí)例練習(xí)
?例1
/[-a-z0-9]+(?:\.[-a-z0-9]+)*\.(?:com|edu|info)/i(?:\.[-a-z0-9]+)* 將匹配零個(gè)或多個(gè)字符串實(shí)例(例如 “.ibm”)
\.(?:com|edu|info) 表示句點(diǎn),后接字符串 com、edu 或 info 中的任意一個(gè)
例2 嵌入空白和注釋$matches?=?preg_grep(?
????????????"/
??????????????[-?a-z?0-9]+????????????#?machine?name
??????????????(?:?\.?[-?a-z?0-9]+)*???#?subdomains
??????????????\.?(?:?com?|?edu?|?info)#?domain
?????????????/xi",?$words?);
其它應(yīng)用
?? regex 的另一個(gè)應(yīng)用是格式化、規(guī)范化或提高數(shù)據(jù)的可讀性。格式化不是使用 regex 查找和提取文本,而是使用 regex 查找并在正確位置插入文本。
如下列,將美元金額轉(zhuǎn)換為數(shù)字
Code
<?php
????//美元金額轉(zhuǎn)換為數(shù)字
????$salary?=?preg_replace("/[\$\s,]/",'',$_REQUEST['salary']);
????//調(diào)用?preg_replace()?函數(shù)將用空字符串替換美元符號(hào)、所有空格和每個(gè)逗號(hào),生成認(rèn)為是整數(shù)的內(nèi)容。
????if?(?is_numeric(?$salary?)?)?{
????????????echo?$salary;
????}
????else?{
????????????echo?"failure";
????}????
?>
在上回,接觸了常見 regex 操作符,這里將介紹一些特殊? regex 操作符:
1、括號(hào)? ()? 的功能;
2、子模式限定符 ?:??? :它的功能是禁用捕捉;
3、regex 末尾的 i? 修飾語??? :模式內(nèi)的所有匹配都不區(qū)分大小寫;
??? regex ((?i)edu) :它只表示子模式不分大小寫;??
?? /---------------/i ? :它表示整個(gè)模式不分大小寫;
4、子模式修飾詞是 (?x) ? :另一個(gè)有用的子模式修飾詞,它允許您在子模式中嵌入空白;
((?x) edu | com | info) :與 (edu|com|info) 相同
/ ... /x?????? :? 在整個(gè) regex 中嵌入空白和注釋
5、子模式修飾詞是 ?<= :即向左查找(向后查找)
6、子模式修飾詞是 ?= :即向右查找(向前查找)
實(shí)例練習(xí)
?例1
/[-a-z0-9]+(?:\.[-a-z0-9]+)*\.(?:com|edu|info)/i(?:\.[-a-z0-9]+)* 將匹配零個(gè)或多個(gè)字符串實(shí)例(例如 “.ibm”)
\.(?:com|edu|info) 表示句點(diǎn),后接字符串 com、edu 或 info 中的任意一個(gè)
例2 嵌入空白和注釋$matches?=?preg_grep(?
????????????"/
??????????????[-?a-z?0-9]+????????????#?machine?name
??????????????(?:?\.?[-?a-z?0-9]+)*???#?subdomains
??????????????\.?(?:?com?|?edu?|?info)#?domain
?????????????/xi",?$words?);
其它應(yīng)用
?? regex 的另一個(gè)應(yīng)用是格式化、規(guī)范化或提高數(shù)據(jù)的可讀性。格式化不是使用 regex 查找和提取文本,而是使用 regex 查找并在正確位置插入文本。
如下列,將美元金額轉(zhuǎn)換為數(shù)字
Code
<?php
????//美元金額轉(zhuǎn)換為數(shù)字
????$salary?=?preg_replace("/[\$\s,]/",'',$_REQUEST['salary']);
????//調(diào)用?preg_replace()?函數(shù)將用空字符串替換美元符號(hào)、所有空格和每個(gè)逗號(hào),生成認(rèn)為是整數(shù)的內(nèi)容。
????if?(?is_numeric(?$salary?)?)?{
????????????echo?$salary;
????}
????else?{
????????????echo?"failure";
????}????
?>
轉(zhuǎn)載于:https://www.cnblogs.com/tograce/archive/2009/07/19/1526461.html
總結(jié)
以上是生活随笔為你收集整理的掌握 PHP 中的正则表达式 二的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于ewebeditor行距
- 下一篇: Windows下Memcached的安装