您的位置:

php正则表达式谁能帮我我解释,php正则表达式匹配中文

本文目录一览:

哪位高手能告诉我,php 正则表达式可以用一种什么样比喻来解释其作用呢?

首先,正则是独立于各门语言之外的一种用于分析处理文本技术。由于很有用,各大流行语言都有支持正则表达式的函数或者库,php也支持,而且个人感觉php对正则的支持做得很好。关于正则,可以看看

这个比较全面的解释。

如果用口水话解释,php中的正则就是一种用于查找匹配(衍生出替换)文本的工具,可以帮助你方便地找到一类带某特性的文本并进行处理。就是根据你所写的正则,去得到符合某种特性的文本。

假设你要在一篇文章中找“xyz的作用:mmmm”,xyz是一串英文字符串,可能是java,可能是php等,而mmmm是内容,完全未知是什么。这时你用正则“[a-zA-Z]+的作用:(\S+)”就能找出这一类“(英文字符串) 后面接 (的作用:) 后面接 (一段描述)”的文本,得到这种你所需要的对某语言作用的(一段描述)文字。

什么是PHP的正则表达式

也就是所谓的补集——在左边的括号和第一个字符之间使用^字符,例如正则表达式[^269A-Z] 将匹配除了2、6、9和所有大写字母之外的任何字符。

你的也就是匹配除了之外的任何字符。

详解PHP正则表达式:什么是正则表达式

正则表达式,又称规则表达式,英文名为Regular Expression,在代码中常简写为regex、regexp或RE,是计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。

正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。

php正则式求解解释!

我们来一条条的分析,正则这样分析最容易了:

先来看前面的无名表达式中间的  [\d]+  相信这个有点正则经验的都知道,它是表示连续至少一个数字的字符串;

再看它外面一圈: \(([\d]+)\)  这个是表示带了括号的至少一个数字的字符串,比如:"(554)"就符合它的要求;

再来看它再外面的一圈  (?:表达式) 这样的语法,这个我们称之为无名表达式,它可以占一个括号,却不会被子匹配所捕获;也就是说,它里面的值在 \1\2或者是$1$2中不会因为用了括号而出现,但它里面的括号还是会被子匹配的。但要注意的是,冒号的前面有一个空格,这个空格也是要求被匹配的,也就是说,在包含了数字的括号前面,要有一个空格,这个数字和括号才会被匹配;

再外面的,又出现了一个无名表达式,这个浪费了,没用。

(?:(?: \(([\d]+)\))?  最后面的   ?   ,这个表示这个无名表达式中的内容可有可无,有的话只限一次,要么就没有。

再看后面  [^.]+  这个表达式,它的写法很有意思,我们都知道在正则中 .  这个符号是不匹配换行的,其它的统统拿下,所以,这么用就表达匹配换行符,后面的 + 表示至少一个,上不封顶。那么,它表示匹配出现一次或者多次的换行,这个还可以用  [\r\n]+  来代替;

再看它外围,(\.[^.]+)?  这个表达式表示,以换行结尾,换行前面有一个点,“.”的前面加上“\”表示这个符号本身,也就是点了,至于后边的问号,与第5条后面的问号意思一样;

最后的$表示是被匹配字符串的末尾,也就代表着,这个正则表达式只匹配出现在整个字符串最末尾的部分,如果出现在字符串中间,则不会被匹配;

最后,我举出几个典型的能够被这条表达式匹配出来的字符串形式:

空字符串

任何字符串最后的空串

任何字符串最后的点加上换行

空格+括号包含一个以上数字,再加上后面紧跟一个点,点后面还必须有换行的字符串;

下面是代码实例:(这里的代码中有多行的会被自动过滤,所以有些不准确)

$a = array(

' (01111).

', //全部匹配

'(0222).

', //只匹配点加上换行(因为没有空格不会匹配(0222))

' (0333333).

',  //匹配 空格加上(0333333)加上点加上若干个换行

' (044)', //匹配空字符串,因为空格加上(044)是相当于预判的无名表达式,所以后面如果没有跟随有意义的匹配,那么不对无名表达式进行匹配;

'',       //匹配空字符串

'fdsa432',  //匹配空字符串

'魂f.

', //匹配点加上换行

'ac (55)a' //匹配空字符串

);

foreach($a as $k=$v){

if(preg_match("/(?:(?: \(([\d]+)\))?(\.[^.]+))?$/", $v, $re)){

var_dump($re);

}

}

输出:

php 16.什么是正则表达式,并举一个例子。

一、什么是正则表达式

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。

二、例子:

?php

$str = '我的电话号码是:12345678';

$pt = '/\d+/';

preg_match_all($pt, $str, $arr);

echo '电话号码:' . $arr[0][0];