这些天需要大量处理一些html文本,需要用到正则表达式,于是根据manual尝试了一下,特此记录。
Php有两种类型的正则表达式,一种是与perl兼容的表达式,一种是扩展POSIX的。一般我们使用的是Perl兼容的正则表达式。
使用简单的表达式弄清楚以下几个步骤就是了:
1. 弄清楚PHP中的正则表达式是以“/”开始,并以“/“结束,比如: /abc/ --表示在任意位置包含abc的字符串。
2. 理解PHP中正则表达式的特殊字符。包括:“/”、“\”、“^“、“$”……。这些字符都代表特殊的含义,如果要在表达式中使用这些字符的原本意义,则需要使用“\“来进行转义。
比如: /price: \$32.00/ 是用来匹配 "Orange's price: $32.00, and apple's price: $64.00"。
"\"除了将特殊字符转义为一般字符之外,还能将一些指定的字符转义成特殊的意义。例如 \d 表示数字,\s表示任意空白字符。
以上所有特殊的字符都可以参考Php Manual:http://www.docviewer.net/docs/php/php_manual/regexp.reference.html
。
这些特殊字符我们一般只需要了解个大概就够了,也就是那些常用的。其他的等到要用的时候再查文档就行了。
3. 了解了这些之后我们就可以开始使用正则表达式了。PHP中表达式的函数主要有:
点击上面的链接我们可以查看详细的使用方法。
下面我们以常用的preg_replace为例来简要说明一下使用方法。
比如,我们要将某个网页的<body>后增加一个<div id="head"></div>,我们可以使用如下的语句:
$text = '<html><head>...</head><body>...</body></html>';
preg_replace('/\<body>/', '<body><div id="head"></div>', $text);
其中参数值一:'/\<body>/'就是一个正则表达式,表示$text中包含<body>,因为"<"是一个特殊字符,所以需要“/“来进行转义。
参数值二:'<body><div id="head"></div>'就是一个普通的字符串,这个是不需要使用任何转义的。
参数值三:要来进行替换的原文本。
其中参数一和参数二不仅仅可以是字符串,还可以是字符串数组,比如要将一个html文本中的<head>和<body>分别替换成不同的内容,就可以如下使用:
$text = '<html><head>...</head><body>...</body></html>';
$patterns = array('/\<head>/', '/\<body>/');
$replacements = array('<head><link type="text/css" src="style.css"', '<body><div id="head"></div>');
ksort($patterns);
ksort($replacements);
preg_replace($patterns, $replacements, $text);
这样就在<head>和<body>之后分别增加了相应的内容了。在上述的例子中,主义要使用ksort对$patterns和$replacements进行排序,否则两者对应的关系是逆序的,具体的可参考:http://www.docviewer.net/docs/php/php_manual/function.preg-replace.html
。
总结:所有的正则表达式语言都是差不多的,一般来说我们只要掌握大体的使用原则,然后参考对应语言的文档,就能够边学边用了。
分享到:
相关推荐
在多种编程语言中,如Perl、Java、JavaScript、C#、PHP、Python、Ruby、Tcl、MySQL、Oracle等,正则表达式都扮演着重要的角色。 学习正则表达式可以做以下事情: 1. **查找字符串**:你可以使用正则表达式来检查一...
自那时起,正则表达式已成为文本编辑器和搜索工具的标准组件,被多种编程语言支持,如Perl、PHP、Python、JavaScript和JScript等。 Java正则表达式虽然与JavaScript的正则表达式类似,但它们之间存在差异。在Java中...
正则表达式在多种编程语言中都有支持,例如Perl、PHP、Python、JavaScript和JScript等,它们提供了高效的文本处理能力。然而,Java的正则表达式并不等同于JavaScript的,尽管两者在功能上有相似之处。 使用Java正则...
目前,正则表达式已经在很多软件中得到广泛...为了简单有效而又不失强大,造成了正则表达式代码的难度较大,学习起来也不是很容易,所以需要付出一些努力才行,入门之后参照一定的参考,使用起来还是比较简单有效的
尽管许多其他编程语言如Perl、PHP、Python等也支持正则表达式,但Java的实现有其独特的特点。 使用Java正则表达式的主要优点在于提高编程效率。例如,判断EMAIL地址等任务,传统编程方法可能需要较复杂的代码,而...
正则表达式是一种强大的文本处理工具,用于在文本中搜索、替换或提取特定的模式。在IT行业,尤其是在编程、数据库管理和系统运维中,正则表达式的应用极为广泛。以下是从给定文件的信息中提炼出的关键知识点: ### ...
PHP正则表达式支持 - **Perl风格的支持**:PHP 4.3 版本及之后支持 Perl 风格的正则表达式,这部分内容被包含在 `preg` 系列函数中。此外,PHP 还提供了 POSIX 风格的正则表达式支持,但通常不推荐使用,因为它们...
《正则表达式从入门到精通》这本书应该会提供丰富的实例和详细的解释,帮助你深入理解和应用正则表达式。建议从基础开始,理解每个元字符和操作符的作用,然后逐步尝试更复杂的模式,结合实际项目进行实践,提升技能...
"正则表达式入门学习经典"这个资料包显然是针对初学者设计的,提供了实例、课件和习题,帮助学习者深入理解和掌握这一技术。 清华大学作为国内顶尖的高等学府,其课程资源通常具有权威性和深度,因此这个资料包中的...
为了简单有效而又不失强大,造成了正则表达式代码的难度较大,学习起来也不是很容易,所以需要付出一些努力才行,入门之后参照一定的参考,使用起来还是比较简单有效的。 例子: ^.+@.+\\..+$ 这样的代码曾经多...
《深入理解PHP正则表达式:从基础到实践》 正则表达式是计算机科学中的一个强大工具,用于模式匹配、搜索与替换等文本处理任务。在PHP中,正则表达式的应用尤为广泛,无论是数据验证、字符串解析还是文本替换,正则...
第1章:正则表达式入门.... 1 解决实际问题... 2 作为编程语言的正则表达式... 4 以文件名做类比... 4 以语言做类比... 5 正则表达式的知识框架... 6 对于有部分经验的读者... 6 检索文本文件:Egrep. 6 ...
本教程旨在帮助你快速理解正则表达式的基本概念和常见用法,让你在30分钟内入门,能够初步应用在实际编程中。 一、正则表达式基础 1. 字符类: - `\d`:匹配任何数字(等同于[0-9])。 - `\D`:匹配任何非数字...
PHP正则表达式是PHP编程中的重要组成部分,它允许开发者通过模式匹配和替换来处理文本字符串。正则表达式在各种编程语言中广泛使用,包括PHP,JavaScript,Perl等,并且在文本处理、数据验证、搜索和替换等功能上...
### 正则表达式入门详解 正则表达式(Regular Expression),简称regex或regexp,是一种强大的文本模式匹配工具,广泛应用于各种编程语言和系统中,如UNIX系统、Linux、Windows等,以及各种脚本语言如Perl、PHP、...
- **正则表达式的基础**:介绍正则表达式的概念、基本语法和常见元字符,帮助读者快速入门。 - **正则表达式引擎详解**:深入讲解正则表达式引擎的工作机制,包括模式匹配算法和内部实现细节。 - **性能优化技巧**:...
关于正则表达式的入门介绍PPT文档,例如: Php内置字符簇 [[:alpha:]] 任何字母 [[:digit:]] 任何数字 [[:alnum:]] 任何字母,数字 [[:space:]] 任何空白字符 [[:punct:]] 任何标点符号 [[:upper:]] 任何大写...
【PHP正则表达式完全手册】是一份详细阐述正则表达式在PHP中使用的文档,旨在帮助开发者理解和掌握这一强大的文本处理工具。正则表达式是编程语言中用于模式匹配和字符串处理的关键部分,虽然其语法复杂,但一旦熟练...
php正则表达式内容简介简单,通俗易懂,适合新手入门,也适合高手作为参考手册