正则表达式小结
发布时间:2020-12-13 22:59:57 所属栏目:百科 来源:网络整理
导读:/** 讲讲元字符 . 的用法 . 任何字符的一次 .? 任何字符的一次或者0次 .+ 任何字符的一次或者以上 每次都可以是不同的值譬如 abc .* 任何字符的0次或者以上 每次都可以是不同的值譬如 abc*/{i} 代表任何字符$mode = '/a.b/'; $str = 'a{i}b'; $mode = '/a.?b
/* * 讲讲元字符 . 的用法 . 任何字符的一次 .? 任何字符的一次或者0次 .+ 任何字符的一次或者以上 每次都可以是不同的值譬如 abc .* 任何字符的0次或者以上 每次都可以是不同的值譬如 abc */ {i} 代表任何字符 $mode = '/a.b/'; $str = 'a{i}b'; $mode = '/a.?b/'; $str = 'a{i}b'; 或者 $str = 'ab'; $mode = '/a.+b/'; $str = 'a{i}。。。b'; $mode = '/a.*b/'; $str = 'a{i}。。。b'; 或者 $str = 'ab'; <pre class="php" name="code">/* * 讲讲元字符 b 的用法 * 匹配单词的边界 空格或者特殊字符(_不属于特殊字符) */ $mode = '/bisb/'; $str = 'where is'; ok $mode = '/bisb/'; $str = 'where.is '; ok $mode = '/bisb/'; $str = 'where_is '; error $mode = '/bisb/'; $str = 'where.is '; ok <pre class="php" name="code">/* * 讲讲元字符 ( ) 的用法 * 合并整体匹配 放入内存,可使用1 2 类似 获取 */ $mode = '/l(abc)l1/'; $str = 'labclabc'; if ( preg_match($mode,$str,$arr) ) { echo '匹配成功'; print_r($arr); } 结果: 匹配成功 Array ( [0] => labclabc [1] => abc ) /* * 讲讲元字符 ( ) 的用法 * 讲一个例子 譬如 年月 可以是 2014-12-12 或者 2014/12/12 或者 20141212 或者 20141212 */ $str = '2014-12-12'; $mode = '/2014(.*)121(12)/s'; $str = '2014-12-12'; if ( preg_match($mode,$arr) ) { echo '匹配成功'; print_r($arr); } 结果: 匹配成功 Array ( [0] => 2014-12-12 [1] => - [2] => 12 ) <pre class="php" name="code">$mode = '/d{4}(.*)d{1,2}1d{1,2}/s'; $str = '2014-12-12'; if ( preg_match($mode,$arr) ) { echo '匹配成功'; print_r($arr); } 结果: 匹配成功 Array ( [0] => 2014-12-12 [1] => -1 ) $mode = '/{(.*)}/U'; $str = 'adk{who}oeo{is}rot{it}yor'; preg_match_all($mode,$arr); print_r($arr); 结果: Array ( [0] => Array ( [0] => {who} [1] => {is} [2] => {it} ) [1] => Array ( [0] => who [1] => is [2] => it ) )
$mode = '/{(.*)}/U'; $str = 'adk{who}oeo{is}rot{it}yor'; echo preg_replace($mode,'中文',$str); 结果: adk中文oeo中文rot中文yor
$mode = array('/{w{3}}/','/{w{2}}/'); $mat = array('我是三个单词','我是二个单词'); $str = 'adk{who}oeo{is}rot{it}yor'; echo preg_replace($mode,$mat,$str); 输出: adk我是三个单词oeo我是二个单词rot我是二个单词yor $mode ='/([a-z])/i'; $str = '111a1111A222221b11'; echo preg_replace($mode,"md5(<a target=_blank href="file://1">1</a>)",$str); 输出: 111md5(a)1111md5(A)222221md5(b)11 $mode ='/([a-z])/ie'; $str = '111a1111A222221b11'; echo preg_replace($mode,$str); 输出:1110cc175b9c0f1b6a831c399e26977266222227fc56270e7a70fa81a5935b72eacbe2922222192eb5ffee6ae2fec3ad71c777531578f11 |