15个超实用的php正则表达式

 联系我们     |      2020-02-16 18:52

在此篇小说里,作者早已编写制定了十捌个超有用的正则表明式,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 expressions (abbreviated as regex or 

regexp, with plural forms regexes, regexps, or regexen) are written in a formal language that can be interpreted by a regular expression processor"; 
$text = preg_replace("/b(regex)b/i", '1', $text); 
echo $text; 

崛起查询结果在您的 WordPress 博客里就如刚刚本身说的,上面的这段代码可以很方便的搜索出结果,而这里是贰个更加好的法子去奉行寻找在有些WordPress的博客上开垦你的文件 search.php ,然后找到 方法 the_title(卡塔尔 然后用下边代码替换掉它

echo $title; 

Now, just before the modified line, add this code: 



删除重复字母

经常重复输入字母? 这个表达式正适合.




$text = preg_replace("/s(w+s)1/i", "$1", $text);

剔除重复的标点
效果同上,但只是直面标点,白白重复的逗号

$text = preg_replace("/.+/i", ".", $text); 

相配四个XML或然HTML标签 本条大概的函数有两个参数:第三个是您要同盟的标签,第二个是含有XML或HTML的变量,再重申下,这么些真的很有力

function get_tag( $tag, $xml ) { 
 $tag = preg_quote($tag); 
 preg_match_all('{]*>(.*?)'.$tag.'>.'}', 
          $xml, 
          $matches, 
          PREG_PATTERN_ORDER); 

 return $matches[1]; 
} 

出色具备属性值的XML或然HTML标签 其风华正茂功用和方面包车型客车老大相仿,不过它同意你合营的价签内部有属性值,比如你能够轻巧相配

function get_tag( $attr, $value, $xml, $tag=null ) { 
 if( is_null($tag) ) 
  $tag = 'w+'; 
 else 
  $tag = preg_quote($tag); 

 $attr = preg_quote($attr); 
 $value = preg_quote($value); 

 $tag_regex = "/]*$attrs*=s*". 
        "(['"])$value\2[^>]*>(.*?)/" 

 preg_match_all($tag_regex, 
         $xml, 
         $matches, 
         PREG_PATTERN_ORDER); 

 return $matches[3]; 
} 

分外十七进制颜色值 web开拓者的另三个风趣的工具,它同意你协作和注脚十四进制颜色值.

$string = "#555555"; 
if (preg_match('/^#(?:(?:[a-fd]{3}){1,2})$/i', $string)) { 
echo "example 6 successful."; 
} 

查找页面 title
这段代码方便寻找和打字与印刷 网页

中间的源委

$fp = fopen("http://www.catswhocode.com/blog","r"); 
while (!feof($fp) ){ 
  $page .= fgets($fp, 4096); 
} 

$titre = eregi("(.*)",$page,$regs); 
echo $regs[1]; 
fclose($fp); 

解释 Apache 日志
大部网址使用的都以令人惊讶标Apache服务器,如若您的网址也是,那么使用PHP正则表明式深入分析apache 服务器日志 如何?

//Logs: Apache web server 
//Successful hits to HTML files only. Useful for counting the number of page views. 
'^((?#client IP or domain name)S+)s+((?#basic authentication)S+s+S+)s+[((?#date and time)[^]]+)]s+"(?:GET|POST|HEAD) ((?#file)/[^ ?"]+?.html?)??((?#parameters)[^ ?"]+)? HTTP/[0-9.]+"s+(?#status code)200s+((?#bytes transferred)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent)[^"]*)"$' 

//Logs: Apache web server 
//404 errors only 
'^((?#client IP or domain name)S+)s+((?#basic authentication)S+s+S+)s+[((?#date and time)[^]]+)]s+"(?:GET|POST|HEAD) ((?#file)[^ ?"]+)??((?#parameters)[^ ?"]+)? HTTP/[0-9.]+"s+(?#status code)404s+((?#bytes transferred)[-0-9]+)s+"((?#referrer)[^"]*)"s+"((?#user agent)[^"]*)"$' 

接受智能引号代替双引号 要是您是三个印制爱好者,你将赏识那一个允许用智能引号代替双引号的正则表达式,那个正则被WO宝马X5DPRESS在其剧情上运用

preg_replace('B"b([^"x84x93x94rn]+)b"B', '?1?', $text);

查查密码的复杂度
本条正则表明式将检验输入的开始和结果是不是含有6个或更多字母,数字,下划线和连字符. 输入必需带有最少多少个大写字母,叁个小写字母和叁个数字
复制代码 代码如下:'A(?=[-_a-zA-Z0-9]*?[A-Z])(?=[-_a-zA-Z0-9]*?[a-z])(?=[-_a-zA-Z0-9]*?[0-9])[-_a-zA-Z0-9]{6,}z'   

WordPress: 使用正则得到 帖子上的图样
自身通晓许三人是WOEvoqueDPRESS的使用者,你大概会合意何况愿意利用 那多少个从帖子的原委搜索下来的图像代码。使用那一个代码在您的BLOG只须求复制上面代码到你的有个别文件里

post_content; 
$szSearchPattern = '~]* />~'; 

// Run preg_match_all to grab all the images and save the results in $aPics 
preg_match_all( $szSearchPattern, $szPostContent, $aPics ); 

// Check to see if we have at least 1 image 
$iNumberOfPics = count($aPics[0]); 

if ( $iNumberOfPics > 0 ) { 
   // Now here you would do whatever you need to do with the images 
   // For this example the images are just displayed 
   for ( $i=0; $i < $iNumberOfPics ; $i++ ) { 
     echo $aPics[0][$i]; 
   }; 
}; 

endwhile; 
endif; 
?> 

自动生成笑颜图案
被WordPress使用的另二个主意, 这段代码可令你把图像自动调换二个笑容符号

$texte='A text with a smiley '; 
echo str_replace(':-)','',$texte); 

移除图片的链接

)()()/", '$2', $str);  
  echo preg_replace("/()()()/", '2', $str);  
?> 

上述就是17个超实用的php正则表明式,希望对大家的求学抱有利于。