php正则表达式经典实例,php正则表达式学习示例

收集了10个php正则表达式实例,希望对大家学习正则有所帮助。

1. 根据购物车中的商品Item ID,准确判断客人的原装机型号。

复制代码 代码如下:

$title = "Replacement Canon BP-511 Camcorder Battery [Item ID:3-236-523]";

if( eregi("([Item ID:)([0-9]+)-([0-9]+)-([0-9]+)(])",$title,$arr) ){

echo "

";

print_r($arr);

echo "

";

}

?>

2. 匹配日期

复制代码 代码如下:

// 分隔符可以是斜线,点,或横线

$date = "04/30/1973";

list($month, $day, $year) = split ('[/.-]', $date); // 漏洞: 04/30-1973也能匹配得上

echo "Month: $month; Day: $day; Year: $year
n";

?>

3. 搜索单词 web

复制代码 代码如下:

if (preg_match ("/bwebb/i", "PHP is the website scripting language of choice.")) {

print "A match was found.";

} else {

print "A match was not found.";

}

?>

4. 从url 中取出域名

复制代码 代码如下:

// 从 URL 中取得主机名

preg_match("/^(http://)?([^/]+)/i",

"http://www.php.net/index.html", $matches);

$host = $matches[2];

// 从主机名中取得后面两段

preg_match("/[^./]+.[^./]+$/", $host, $matches);

echo "domain name is: {$matches[0]}n";

// 本例执行后将输出: domain name is: php.net

?>

5. 你知道下面的程序输出什么?

复制代码 代码如下:

preg_match_all ("|]+>(.*)[^>]+>|U",

"example:

this is a test
",

$out, PREG_PATTERN_ORDER); // 注意PREG_PATTERN_ORDER和PREG_SET_ORDER的区别

print $out[0][0].", ".$out[0][1]."n";

print $out[1][0].", ".$out[1][1]."n";

echo "

";

print_r($out);

?>

6. 功能: 转义正则表达式字符

复制代码 代码如下:

$keywords = "$40 for a g3/400";

$keywords = preg_quote ($keywords, "/");

echo $keywords; // returns $40 for a g3/400

?>

7. 看人家如何用 preg_quote() 函数实现高亮显示

复制代码 代码如下:

// 本例中,preg_quote($word) 用来使星号不在正则表达式中

// 具有特殊含义。

$textbody = "This book is *very* difficult to find.";

$word = "*very*";

$textbody = preg_replace ("/".preg_quote($word)."/",

"".$word."",

$textbody);

echo $textbody;

?>

8. 用回调函数执行正则表达式的搜索和替换

复制代码 代码如下:

// 此文本是用于 2002 年的,

// 现在想使其能用于 2003 年

$text = "April fools day is 04/01/2002n";

$text.= "Last christmas was 12/24/2001n";

// 回调函数

function next_year($matches) {

// 通常:$matches[0] 是完整的匹配项

// $matches[1] 是第一个括号中的子模式的匹配项

// 以此类推

return $matches[1].($matches[2]+1);

}

echo preg_replace_callback(

"|(d{2}/d{2}/)(d{4})|",

"next_year",

$text);

// 结果为:

// April fools day is 04/01/2003

// Last christmas was 12/24/2002

?>

9. 在 preg_replace() 中使用索引数组

复制代码 代码如下:

$string = "The quick brown fox jumped over the lazy dog.";

$patterns[0] = "/quick/";

$patterns[1] = "/brown/";

$patterns[2] = "/fox/";

$replacements[2] = "bear";

$replacements[1] = "black";

$replacements[0] = "slow";

print preg_replace($patterns, $replacements, $string);

/* Output

======

The bear black slow jumped over the lazy dog.

*/

/* By ksorting patterns and replacements,

we should get what we wanted. */

ksort($patterns);

ksort($replacements);

print preg_replace($patterns, $replacements, $string);

/* Output

======

The slow black bear jumped over the lazy dog.

*/

?>

10. 将 HTML 转换成文本

复制代码 代码如下:

// $document 应包含一个 HTML 文档。

// 本例将去掉 HTML 标记,# 代码

// 和空白字符。还会将一些通用的

// HTML 实体转换成相应的文本。

$search = array ("''si", // 去掉 #

"']*?>'si", // 去掉 HTML 标记

"'([rn])[s]+'", // 去掉空白字符

"'&(quot|#34);'i", // 替换 HTML 实体

"'&(amp|#38);'i",

"'&(lt|#60);'i",

"'&(gt|#62);'i",

"'&(nbsp|#160);'i",

"'&(iexcl|#161);'i",

"'&(cent|#162);'i",

"'&(pound|#163);'i",

"'&(copy|#169);'i",

"'(d+);'e"); // 作为 PHP 代码运行

$replace = array ("",

"",

"1",

""",

"&",

"

">",

" ",

chr(161),

chr(162),

chr(163),

chr(169),

"chr(1)");

$text = preg_replace ($search, $replace, $document);

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值