php-preg-1

WBOY
WBOYoriginal
2016-08-08 09:20:41943parcourir

Q. 正则表达式

正则表达式是由原子,元字符,模式修正三部分组成的。原子也就是普通字符。

元字符:

\d: 匹配任意一个十进制数字[0-9]

\s:匹配任意一个空白字符

\w:匹配任意一个数字、字母、下划线[0-9a-zA-Z_]

.:匹配除了换行符自外的任意一个字符

?:匹配0次或一次

+:匹配1次或多次其前的原子

*:匹配任意次

|:匹配两个或多个分支选择,用来分隔多选一的模式

\b:匹配单词的边界

\B:非单词边界

^:匹配输入字符串的开始位置

$:匹配输入字符串的结束位置

():模式单元,将多个原子组成大的原子,当做一个单元。这样会将相关匹配存储到一个缓存区中,可以被获取供以后使用。存储子匹配的缓冲区编号从1开始,最大到99,每个缓冲区都可以使用\n来访问。在正则表达式模式中使用时注意转义。举个例子:”/^\d{4}(\W)\d{2}\1\d{2}$/”。可以在括号中使用?:s设置非存储模式。

正则表达式引擎的内部工作机制

知道正则表达式引擎是如何工作的有助于你很快理解为何某个正则表达式不像你期望的那样工作。

<code>  有两种类型的引擎:文本导向(text-directed)的引擎和正则导向(regex-directed)的引擎。Jeffrey Friedl把他们称作DFA和NFA引擎。本文谈到的是正则导向的引擎。这是因为一些非常有用的特性,如“惰性”量词(lazy quantifiers)和反向引用(backreferences),只能在正则导向的引擎中实现。所以毫不意外这种引擎是目前最流行的引擎。
</code>

你可以轻易分辨出所使用的引擎是文本导向还是正则导向。如果反向引用或“惰性”量词被实现,则可以肯定你使用的引擎是正则导向的。你可以作如下测试:将正则表达式

以上就介绍了php-preg-1,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn