php正则表达式

php正则表达式

ぐ巨炮叔叔 提交于 2020-02-27 06:11:14
介绍 正则表达式,大家在开发中应该是经常用到,现在很多开发语言都有正则表达式的应用,比如javascript,java,.net,php等等,我今天就把我对正则表达式的理解跟大家唠唠,不当之处,请多多指教! 需要知道的术语——下面的术语你知道多少? Δ 定界符 Δ 字符域 Δ 修饰符 Δ 限定符 Δ 脱字符 Δ 通配符(正向预查,反向预查) Δ 反向引用 Δ 惰性匹配 Δ 注释 Δ 零字符宽 定位 我们什么时候使用正则表达式呢?不是所有的字符操作都用正则就好了,php在某些方面用正则反而影响效率。当我们遇到复杂文本数据的解析时候,用正则是比较好的选择。 优点 正则表达式在处理复杂字符操作的时候,可以提高工作效率,也在一定程度节省你的代码量。 缺点 我们在使用正则表达式的时候,复杂的正则表达式会加大代码的复杂度,让人很难理解。所以我们有的时候需要在正则表达式内部添加注释。 通用模式 ¤ 定界符,通常使用 "/"做为定界符开始和结束,也可以使用"#"。   什么时候使用"#"呢?一般是在你的字符串中有很多"/"字符的时候,因为正则的时候这种字符需要转义,比如uri。 使用"/"定界符的代码如下. $regex = '/^http:\/\/([\w.]+)\/([\w]+)\/([\w]+)\.html$/i' ; $str = ' http://www.youku.com/show

PHP preg_match正则表达式

本秂侑毒 提交于 2020-02-07 06:56:25
行定位符 ^表示开始 $表示结束 preg_match(模式,待搜索的字符串,$matches) 其中matches为可选参数,一旦匹配上,可以返回匹配结果 举个例子: $pattern = '/#\S+/'; \S表示任何非空白字符(由于例子中使用的是中文所以这里不能使用\w) $mystr = "(r'/loadcolspage',loadcolspage),#列加工器"; preg_match($pattern,$mystr,$matches); var_dump($matches); 打印结果: array(1) { [0]=> string(13) "#列加工器" } 来源: https://www.cnblogs.com/saintdingspage/p/10929880.html

php正则表达式匹配函数

时光毁灭记忆、已成空白 提交于 2020-01-22 16:51:19
<?php function show($var=null){ if(empty($var)) { echo 'null'; }else if(is_array($var) || is_object($var)){ echo '<pre>'; print_r($var); echo '</pre>'; }else{ echo $var; } } $pattern='/[0-9]/'; $subject='asd78dfgfd1dfg2asdf8sadf6asdf9'; $m1=$m2=array(); $t1=preg_match($pattern,$subject,$m1);//返回匹配的次数,这个函数只匹配一次 $t2=preg_match_all($pattern,$subject,$m2);//返回匹配的次数,这个函数只匹配多次 show($m1); echo '<hr/>'; show($m2); echo '<hr/>'; show($t1.'||'.$t2); 来源: https://www.cnblogs.com/QMM2008/p/4567698.html

PHP正则表达式及表单注册案例

走远了吗. 提交于 2020-01-14 12:02:10
正则表达式是一种具有特定模式的用来匹配文本的字符串 preg_match 匹配 $pattern = '/php/'; $subject = "php 是最好的编程语言,php 没有之一!"; $result = preg_match($pattern,$subject); if($result){ echo "<h1>匹配成功</h1>"; }else{ echo "<h1>匹配不成功</h1>"; } preg_match_all 匹配所有 $pattern = '/php/'; $subject = "php是最好的编程语言,不会php的程序员不是好程序员!"; $result = preg_match_all($pattern,$subject,$matches); var_dump($result); var_dump($matches); //preg_match=== //int 1 //array (size=1) // 0 => string 'php' (length=3) //preg_match_all ==== //int 2 //array (size=1) // 0 => // array (size=2) // 0 => string 'php' (length=3) // 1 => string 'php' (length=3) preg

15个实用的PHP正则表达式

牧云@^-^@ 提交于 2019-12-17 12:15:55
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 对于开发人员来说,正则表达式是一个非常有用的功能,它提供了 查找,匹配,替换 句子,单词,或者其他格式的字符串。这篇文章主要介绍了15个超实用的php正则表达式,需要的朋友可以参考下。 在这篇文章里,我已经编写了15个超有用的正则表达式,WEB开发人员都应该将它收藏到自己的工具包。验证域名检验一个字符串是否是个有效域名。 $url = "http://komunitasweb.com/" ; if (preg_match( '/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i' , $url )) { echo "Your url is ok." ; } else { echo "Wrong url." ; } 从一个字符串中 突出某个单词 这是一个非常有用的在一个字符串中匹配出某个单词 并且突出它,非常有效的搜索结果. $text = "Sample sentence from KomunitasWeb, regex has become popular in web programming. Now we learn regex. According to wikipedia, Regular

php正则表达式心得总结

纵然是瞬间 提交于 2019-12-06 08:41:46
一、php采用的是PCRE模式: http://php.net/manual/zh/book.pcre.php PCRE模式 二、常用函数 preg_replace 执行正则表达式替换 http://php.net/manual/zh/function.preg-replace.php preg_replace($pattern, $replacement, $string); preg_match 执行一次正则表达式匹配 $subject = "abcdef"; $pattern = '/^def/'; preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3); print_r($matches); preg_match_all 执行一个全局正则表达式匹配 preg_match()返回 pattern 的匹配次数。 它的值将是0次(不匹配)或1次,因为preg_match()在第一次匹配后 将会停止搜索。preg_match_all()不同于此,它会一直搜索subject 直到到达结尾。 如果发生错误preg_match()返回 FALSE。 三、模式修饰符(匹配模式) http://php.net/manual/zh/reference.pcre.pattern.modifiers.php i:大小写不敏感

php正则表达式问题

匿名 (未验证) 提交于 2019-12-02 22:11:45
问题: Warning : preg_match(): Unknown modifier ‘/‘ in D:\wwwroot\www.xb.com\t.php on line 6 bool(false) NULL 我的代码: <?php $str = ‘‘; $isMatched = preg_match("/http://www.chinanews.com/gn/2018/07-04/8555660.shtml/", $str, $matches); var_dump($isMatched, $matches); 问题原因: 上述正则的定界符是斜杠’/’, 所以以此往后找,再找一个斜杠’/’,就结束了,得到的是: /http:/ 所以,后面跟着的内容: /www.chinanews.com/gn/2018/07-04/8555660.shtml/ 就没法识别了。 解决办法是: 1. 把定界符,改为别的,和当前正则表达式中的字符,不会冲突的,比如: "#/http://www.chinanews.com/gn/2018/07-04/8555660.shtml#"; 就可以了。 2. 在定界符内的‘/‘前面加上转义字符‘\‘, 如下 "/http:\/\/www.chinanews.com\/gn\/2018\/07-04\/8555660.shtml/" <?php $str =

curl 采集

为君一笑 提交于 2019-11-28 01:16:55
正则表达式的复习 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字【应该是word的首字母】 \s 匹配任意的空白符 【space首字母】 \d 匹配数字 【英文Digital的首位字母吧】 \b 匹配单词的开始或结束 【begin首字母】 ^ 匹配字符串的开始 $ 匹配字符串的结束 * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 //反义 \W 匹配任意不是字母,数字,下划线,汉字的字符 \S 匹配任意不是空白符的字符 \D 匹配任意非数字的字符 \B 匹配不是单词开头或结束的位置 [^x] 匹配除了x以外的任意字符 [^aeiou] 匹配除了aeiou这几个字母以外的任意字符 PHP 正则表达式模式后面通常带有 /i, /is, /s, /isU等参数说明 i 匹配大小写 s 模式中的圆点元字符(.)匹配所有的字符,包括换行符 x 模式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的 # 以及下一个换行符之间的所有字符,包括两 头,也都被忽略 A (PCRE_ANCHORED) 如果设定了此修正符,模式被强制为“anchored”,即强制仅从目标字符串的开头开始匹配即自动在模式开头加上^。 D (PCRE_DOLLAR_ENDONLY)