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:
",
$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);
?>
php正则表达式经典实例,php正则表达式学习示例相关推荐
- 《正则表达式经典实例(第2版)》——2.19 在替代文本中添加字面文本
本节书摘来自异步社区<正则表达式经典实例(第2版)>一书中的第2章,第2.19节,作者: [美]Jan Goyvaerts , Steven Levithan著,更多章节内容可以访问云栖社 ...
- 《正则表达式经典实例(第2版)》——2.6 匹配完整单词
本节书摘来自异步社区<正则表达式经典实例(第2版)>一书中的第2章,第2.6节,作者: [美]Jan Goyvaerts , Steven Levithan著,更多章节内容可以访问云栖社区 ...
- 《正则表达式经典实例(第2版)》——2.18 向正则表达式中添加注释
本节书摘来自异步社区<正则表达式经典实例(第2版)>一书中的第2章,第2.18节,作者: [美]Jan Goyvaerts , Steven Levithan著,更多章节内容可以访问云栖社 ...
- php正则表达式经典实例,php半小时精通正则表达式
php半小时精通正则表达式 更新时间:2006年11月26日 00:00:00 作者: 想必很多人都对正则表达式都头疼.今天,我以我的认识,加上网上一些文章,希望用常人都可以理解的表达方式.来和大 ...
- python正则表达式使用实例_正则表达式的基础知识,以及Python爬虫中的使用方法...
一.正则表达式 实际上爬虫一共就四个主要步骤: 明确目标(要知道你准备在哪个范围或者网站去搜索) 爬(将所有的网站内容全部爬下来) 取(去掉对我们没有用处的数据) 处理数据 我们在第上一篇文章中介绍的 ...
- c语言计算器实训任务案例,C/C++经典实例之模拟计算器示例代码
前言 本文主要给大家介绍了关于利用C/C++如何实现模拟计算器的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. Problem Description 简单计算器模拟:输入 ...
- JMeter学习-009-JMeter 后置处理器实例之 - 正则表达式提取器(二)多参数获取
前文简述了通过后置处理器 - 正则表达式提取器 获取 HTTP请求 响应结果中的特定数据,未看过的亲,敬请参阅 JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一). ...
- python爬虫正则表达式实例-python爬虫学习三:python正则表达式
python爬虫学习三:python正则表达式 1.正则表达式基础 a.正则表达式的大致匹配过程: 1.依次拿出表达式和文本中的字符比较 2.如果每一个字符都能匹配,则匹配成功:一旦有匹配不成功的字符 ...
- python正则表达式案例_Python正则表达式使用经典实例
regex=ur"" #正则表达式 match = re.search(regex, subject) if match: # match start: match.start() ...
最新文章
- opencv 最大连通域_opencv 查找连通区域 最大面积实例
- c语言中图像处理相关函数,C语言图像处理函数大全
- YOLO利用kmeans聚类算法计算anchors box(原理介绍及代码)
- Python对文本文件的简单操作(一)
- Fullpage:基础学习
- SLAM_SLAM中一般是如何求解相机的运动的?
- Symbols andSymbol Tables
- 页面提交时,显示“提交中”等待效果
- 基于[三星6818]I2C驱动开发的0.96寸oled屏
- 删除计算机用户时拒绝访问权限,如果打印机拒绝访问并且无法删除设备怎么办...
- java中的java.lang.RuntimeException异常怎么解决?
- 电商APP的流量及用户运营分析
- 计算机考研专业课科目834,2018考研华中科技大学834计算机专业基础综合考试大纲...
- 阿里java开发规范学习笔记 (V1.5华山版)
- (转)coures包下载和安装 可解决报错ImportError: No module named '_curses'
- 常用字符串API实现(笔试会考)
- 好心情:这4种营养素能增强抗抑郁药的疗效!不知道的人亏大了
- 公钥密码的三大数学问题
- matlab有哪些分类器,常用分类器汇总matlab
- mysql @的使用