本文目录一览:
- 1、哪位高手能告诉我,php 正则表达式可以用一种什么样比喻来解释其作用呢?
- 2、什么是PHP的正则表达式
- 3、详解PHP正则表达式:什么是正则表达式
- 4、php正则式求解解释!
- 5、php 16.什么是正则表达式,并举一个例子。
哪位高手能告诉我,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];