正则表达式,15php正则表达式

 百家乐-前端     |      2020-02-16 11:36

对此开荒人士来讲,正则表达式是三个那几个低价的作用,它提供了 查找,相配,替换 句子,单词,大概别的格式的字符串。那篇文章首要介绍了17个超实用的php正则表达式,须求的爱侣可以参见下。在此篇文章里,笔者已经编写制定了17个超有用的正则表达式,WEB开垦职员都应当将它收藏到和煦的工具包。

17个超实用的php正则表明式,15php正则表明式

在此篇小说里,笔者风流倜傥度编制了17个超有用的正则表达式,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: 

<?php 
  $title   = get_the_title(); 
  $keys= explode(" ",$s); 
  $title   = preg_replace('/('.implode('|', $keys) .')/iu', 
    '<strong></strong>', 
    $title); 
?> 

Save the search.php file and open style.css. Append the following line to it: 

strong.search-excerpt { background: yellow; } 

从HTML文书档案中拿走全套图形 假如你已经梦想去得到有个别网页上的万事图纸,这段代码就是你须求的,你能够轻易的确立二个图片下运载飞机器人

$images = array(); 
preg_match_all('/(img|src)=("|')[^"'>]+/i', $data, $media); 
unset($data); 
$data=preg_replace('/(img|src)("|'|="|=')(.*)/i',"$3",$media[0]); 
foreach($data as $url) 
{ 
  $info = pathinfo($url); 
  if (isset($info['extension'])) 
  { 
    if (($info['extension'] == 'jpg') || 
    ($info['extension'] == 'jpeg') || 
    ($info['extension'] == 'gif') || 
    ($info['extension'] == 'png')) 
    array_push($images, $url); 
  } 
} 

除去重复字母
日常重复输入字母? 那个表明式正符合.

$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.'[^>]*>(.*?)</'.$tag.'>.'}', 
          $xml, 
          $matches, 
          PREG_PATTERN_ORDER); 

 return $matches[1]; 
} 

特别具备属性值的XML可能HTML标签 其朝气蓬勃效果和方面包车型客车相当相似,然而它同意你合作的价签内部有属性值,比方你能够轻巧匹配<div id=”header”>

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 = "/<(".$tag.")[^>]*$attrs*=s*". 
        "(['"])$value\2[^>]*>(.*?)</\1>/" 

 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
这段代码方便寻找和打字与印刷 网页 <title> 和</title> 之间的内容

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

$titre = eregi("<title>(.*)</title>",$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传祺DPRESS在其剧情上行使

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: 使用正则获得 帖子上的图片
本身清楚许四人是WOCRUISERDPRESS的使用者,你可能会赏识况且愿意利用 那多少个从帖子的从头到尾的经过寻觅下来的图像代码。使用那些代码在您的BLOG只必要复制下边代码到你的有个别文件里

<?php if (have_posts()) : ?> 
<?php while (have_posts()) : the_post(); ?> 

<?php 
$szPostContent = $post->post_content; 
$szSearchPattern = '~<img [^>]* />~'; 

// 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(':-)','<img src="smileys/souriant.png">',$texte); 

移除图片的链接

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<?php 
  $str = ' 
    <a href="http://www.5idev.com/">5idev</a>其他字符 
    <a href="http://www.sohu.com/">sohu</a> 
    <a href="http://www.sohu.com/"><img src="http://www.fashion-press.net/img/news/3176/mot_06.jpg" /></a> 
    <br>'; 


  //echo preg_replace("/(<a.*?>)(<img.*?>)(</a>)/", '$2', $str);  
  echo preg_replace("/(<a.*?>)(<img.*?>)(</a>)/", '2', $str);  
?> 

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

在这里篇文章里,作者曾经编写制定了16个超有用的正则表明式,WEB开采职员都应当将它收藏到温馨的工...

图片 1

验证域名检查一个字符串是不是是个有效域名

$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(State of Qatar 然后用上面代码替换掉它

echo $title; 

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

<?php 
  $title   = get_the_title(); 
  $keys= explode(" ",$s); 
  $title   = preg_replace('/('.implode('|', $keys) .')/iu', 
    '<strong></strong>', 
    $title); 
?> 

Save the search.php file and open style.css. Append the following line to it: 

strong.search-excerpt { background: yellow; }

从HTML文书档案中获得任何图形

万风华正茂您早就希望去赢得有些网页上的全体图纸,这段代码就是您须要的,你可以轻便的构建一个图片下运载飞机器人

$images = array(); 
preg_match_all('/(img|src)=("|')[^"'>]+/i', $data, $media); 
unset($data); 
$data=preg_replace('/(img|src)("|'|="|=')(.*)/i',"$3",$media[0]); 
foreach($data as $url) 
{ 
  $info = pathinfo($url); 
  if (isset($info['extension'])) 
  { 
    if (($info['extension'] == 'jpg') || 
    ($info['extension'] == 'jpeg') || 
    ($info['extension'] == 'gif') || 
    ($info['extension'] == 'png')) 
    array_push($images, $url); 
  } 
}

去除重复字母

时一时重复输入字母? 这么些表明式正相符.

$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.'[^>]*>(.*?)</'.$tag.'>.'}', 
          $xml, 
          $matches, 
          PREG_PATTERN_ORDER); 

 return $matches[1]; 
}

格外具有属性值的XML只怕HTML标签

本条效能和方面包车型地铁丰富相同,然则它同意你合作的价签内部有属性值,举个例子你能够轻易匹配<div id=”header”>

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 = "/<(".$tag.")[^>]*$attrs*=s*". 
        "(['"])$value\2[^>]*>(.*?)</\1>/" 

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

 return $matches[3]; 
}