我的正则表达式一直都不清楚,都是从网上搜索,网上查然后用的,但是当我在写自己的框架的时候我发现正则这个利器不会真的不行,所以我就苦逼的回去修炼去了,这里要谢谢兄弟连高老师的视频了,给我许多基础的东西和正则的思路,现在就给大家简单分析一下正则,学习一下正则,正则我们真的要知道几个东西怎么用。 譬如/w /W /d /D /s /S其实这些不会也没关系因为我们可以自己写,譬如/w可以写成[a-zA-Z0-9]这样也是可以的,/W直接取反不就可以了吗?[^a-zA-Z0-9],当然我的意思大家还是要记住一下,因为有了那些写起来比较简单,而且书写起来看起来比较规范的。 废话不多说了,分析一下学习方法,呵呵,我也学了好长时间了,嗯我也回忆一下,错的地方大家提醒一下哈! \d 表示任意个数字 \D 字数字之外的数字 \s 匹配任意一个空白字符 \S 表示任意一个非空白 \w 表示任意一个数字a-zA-Z0-9_ \W表示任意一个非字 []可以匹配方括号中的任意一个原子 *表示出现0次 1次 或者多次 +表示前边的原子可以出现1次或者多次 ?表示前面的原子可以出现0次或者1次 {}表示用于自己定义前边原子出现的次数 {m,n}表示前边出现的原子最少m次 最多n次 {m,}表示前边的原子最少出现m次 . 表示默认情况下,表示除换行符外的任意一个字符 ^直接在一个正则表达式的第一个字符出现则表示 必须以这个正则表达式开始 $ 是代表表达式的最后一个字符结尾 | 表示或者的关系 ()太多了,写出来累死人 说完大家就应该实例了,因为实例是检测和学习的真理,不会那就一个一个来,跟我当初一样,我看了这些之后我就这样学的大家不防也仿照一下 我是这样学习 我用preg_match一个一个检验学习成果 然后自己写点通用的 然后看能不能匹配成功
//譬如我开始做的是图片<img src=""/>我当初就是写完了,匹配不出来一点一点匹配看看哪里错了 $a='/<\img\s*src=\".*\"\s*\/\>/'; $b='<img src="2.png" alt="" />'; if(preg_match($a,$b)){ echo "图片匹配成功"; }else{ echo "匹配失败"; }//这就一个简单的图片匹配其实这个写的不咋的,因为中间图片部分2.png没有匹配,用的任何字符匹配的,哈哈要是要图片性质的完整留言哦,来电流量 昨天人问我正则有用吗?php程序员这个不太重要吧,我告诉你错了,正则的作用很大,要不我当初也不会重新学习去了,写个实例把,譬如我有个网站,有好多人去我的网站,会发链接,影响优化,我怎么办?
<?php private $url; private $siteurl; function __constract($url='',$siteurl='yun.widuu.com'){ $this->url=$url; $this->url=$siteurl; } } function setUrl() { $str="/(https?|ftps?):\/\/((www|mail|news)\.([^\.\/]+)\.(com|org|net))/i"; preg_match_all($str, $this->url, $arr,PREG_PATTERN_ORDER ); foreach($arr[0] as $url){ $trueurl=str_replace($url, $this->;siteurl, $this->;url); } return $trueurl; } } //这样如过别人在你的网站上发链接,你就自动替换成你自己的网址,当然正则中还有域名的后戳名少,大家自己加下欢迎大家转载,转载请注明来自微度网络http://yun.widuu.com
发表评论 取消回复