`
newweapon
  • 浏览: 26079 次
  • 性别: Icon_minigender_1
  • 来自: hefei
最近访客 更多访客>>
社区版块
存档分类
最新评论

PHP正则表达式入门记

阅读更多

这些天需要大量处理一些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_grep — Return array entries that match the pattern
  • preg_last_error — Returns the error code of the last PCRE regex execution
  • preg_match_all — Perform a global regular expression match
  • preg_match — Perform a regular expression match
  • preg_quote — Quote regular expression characters
  • preg_replace_callback — Perform a regular expression search and replace using a callback
  • preg_replace — Perform a regular expression search and replace
  • preg_split — Split string by a regular expression

点击上面的链接我们可以查看详细的使用方法。

下面我们以常用的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

总结:所有的正则表达式语言都是差不多的,一般来说我们只要掌握大体的使用原则,然后参考对应语言的文档,就能够边学边用了。

1
1
分享到:
评论

相关推荐

    正则表达式入门指导.ppt

    在多种编程语言中,如Perl、Java、JavaScript、C#、PHP、Python、Ruby、Tcl、MySQL、Oracle等,正则表达式都扮演着重要的角色。 学习正则表达式可以做以下事情: 1. **查找字符串**:你可以使用正则表达式来检查一...

    JAVA正则表达式 从入门到进阶

    自那时起,正则表达式已成为文本编辑器和搜索工具的标准组件,被多种编程语言支持,如Perl、PHP、Python、JavaScript和JScript等。 Java正则表达式虽然与JavaScript的正则表达式类似,但它们之间存在差异。在Java中...

    Java正则表达式入门介绍

    正则表达式在多种编程语言中都有支持,例如Perl、PHP、Python、JavaScript和JScript等,它们提供了高效的文本处理能力。然而,Java的正则表达式并不等同于JavaScript的,尽管两者在功能上有相似之处。 使用Java正则...

    正则表达式系统教程 正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,

    目前,正则表达式已经在很多软件中得到广泛...为了简单有效而又不失强大,造成了正则表达式代码的难度较大,学习起来也不是很容易,所以需要付出一些努力才行,入门之后参照一定的参考,使用起来还是比较简单有效的

    java正则表达式入门详解

    尽管许多其他编程语言如Perl、PHP、Python等也支持正则表达式,但Java的实现有其独特的特点。 使用Java正则表达式的主要优点在于提高编程效率。例如,判断EMAIL地址等任务,传统编程方法可能需要较复杂的代码,而...

    正则表达式,图文并貌,教你快速入门与提高

    正则表达式是一种强大的文本处理工具,用于在文本中搜索、替换或提取特定的模式。在IT行业,尤其是在编程、数据库管理和系统运维中,正则表达式的应用极为广泛。以下是从给定文件的信息中提炼出的关键知识点: ### ...

    正则表达式参考手册(英文)

    PHP正则表达式支持 - **Perl风格的支持**:PHP 4.3 版本及之后支持 Perl 风格的正则表达式,这部分内容被包含在 `preg` 系列函数中。此外,PHP 还提供了 POSIX 风格的正则表达式支持,但通常不推荐使用,因为它们...

    正则表达式例子 str_replace

    《正则表达式从入门到精通》这本书应该会提供丰富的实例和详细的解释,帮助你深入理解和应用正则表达式。建议从基础开始,理解每个元字符和操作符的作用,然后逐步尝试更复杂的模式,结合实际项目进行实践,提升技能...

    正则表达式入门学习经典

    "正则表达式入门学习经典"这个资料包显然是针对初学者设计的,提供了实例、课件和习题,帮助学习者深入理解和掌握这一技术。 清华大学作为国内顶尖的高等学府,其课程资源通常具有权威性和深度,因此这个资料包中的...

    正则表达式系统教程 chm

    为了简单有效而又不失强大,造成了正则表达式代码的难度较大,学习起来也不是很容易,所以需要付出一些努力才行,入门之后参照一定的参考,使用起来还是比较简单有效的。 例子: ^.+@.+\\..+$  这样的代码曾经多...

    php正则表达式-超经典

    《深入理解PHP正则表达式:从基础到实践》 正则表达式是计算机科学中的一个强大工具,用于模式匹配、搜索与替换等文本处理任务。在PHP中,正则表达式的应用尤为广泛,无论是数据验证、字符串解析还是文本替换,正则...

    精通正则表达式~~~

    第1章:正则表达式入门.... 1 解决实际问题... 2 作为编程语言的正则表达式... 4 以文件名做类比... 4 以语言做类比... 5 正则表达式的知识框架... 6 对于有部分经验的读者... 6 检索文本文件:Egrep. 6 ...

    正则表达式30分钟入门教程(超经典)

    本教程旨在帮助你快速理解正则表达式的基本概念和常见用法,让你在30分钟内入门,能够初步应用在实际编程中。 一、正则表达式基础 1. 字符类: - `\d`:匹配任何数字(等同于[0-9])。 - `\D`:匹配任何非数字...

    PHP正则表达式快速学习及PHP常用正则表达式大全.pdf

    PHP正则表达式是PHP编程中的重要组成部分,它允许开发者通过模式匹配和替换来处理文本字符串。正则表达式在各种编程语言中广泛使用,包括PHP,JavaScript,Perl等,并且在文本处理、数据验证、搜索和替换等功能上...

    正则表达式入门,初学者

    ### 正则表达式入门详解 正则表达式(Regular Expression),简称regex或regexp,是一种强大的文本模式匹配工具,广泛应用于各种编程语言和系统中,如UNIX系统、Linux、Windows等,以及各种脚本语言如Perl、PHP、...

    掌控正则表达式:第三版

    - **正则表达式的基础**:介绍正则表达式的概念、基本语法和常见元字符,帮助读者快速入门。 - **正则表达式引擎详解**:深入讲解正则表达式引擎的工作机制,包括模式匹配算法和内部实现细节。 - **性能优化技巧**:...

    感受正则表达式的神奇PPT

    关于正则表达式的入门介绍PPT文档,例如: Php内置字符簇 [[:alpha:]] 任何字母 [[:digit:]] 任何数字 [[:alnum:]] 任何字母,数字 [[:space:]] 任何空白字符 [[:punct:]] 任何标点符号 [[:upper:]] 任何大写...

    php的正则表达式完全手册.docx

    【PHP正则表达式完全手册】是一份详细阐述正则表达式在PHP中使用的文档,旨在帮助开发者理解和掌握这一强大的文本处理工具。正则表达式是编程语言中用于模式匹配和字符串处理的关键部分,虽然其语法复杂,但一旦熟练...

    php正则表达式

    php正则表达式内容简介简单,通俗易懂,适合新手入门,也适合高手作为参考手册

Global site tag (gtag.js) - Google Analytics