在这篇文章里,我已经编写了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 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:

$title = get_the_title();

$keys= explode(" ",$s);

$title = preg_replace('/('.implode('|', $keys) .')/iu',

'\0',

$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.'>.'}',

$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 = "/]*$attr\s*=\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)[^"]*)"$'

使用智能引号代替双引号如果你是一个印刷爱好者,你将喜欢这个允许用智能引号代替双引号的正则表达式,这个正则被WORDPRESS在其内容上使用

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: 使用正则获得 帖子上的图片

我知道很多人是WORDPRESS的使用者,你可能会喜欢并且愿意使用 那些从帖子的内容检索下来的图像代码。使用这个代码在你的BLOG只需要复制下面代码到你的某个文件里

$szPostContent = $post->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);

移除图片的链接

$str = '

5idev其他字符

sohu

';

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

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

?>

以上就是15个超实用的php正则表达式,希望对大家的学习有所帮助。

php正则匹配多个,15个超实用的php正则表达式相关推荐

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

    在这篇文章里,我已经编写了15个超有用的正则表达式,WEB开发人员都应该将它收藏到自己的工具包. 验证域名 检验一个字符串是否是个有效域名. $url = "http://komunitas ...

  2. 正则匹配查询_如何用MySQL中的正则表达式过滤掉配送单

    需求 最近在用mysql做一个配送单的筛选的需求,比如一个订单表里的订单号有多种,比如以A,B,C,D,F开头的订单,我要同时过滤掉A,B与C的订单,那我要如何做呢?这里你们有其他方法的话,不妨留言哈 ...

  3. python正则匹配日期2019-03-11_都2019年了,正则表达式为啥还是这么难?这里的Python学习教程教你搞定!...

    都9102年了,你还觉得正则表达式很难?难,确实是还难啊! 这里南瓜跟大家总结的最新Python学习教程,教你搞定它! 正则表达式语法 字符与字符类 特殊字符: .^$?+*{}| 以上特殊字符要想使 ...

  4. python正则匹配括号以及内容_【Python】正则表达式匹配最里层括号的内容

    现在有一个字符串: str1 = '(subject_id = "A" OR (status_id = "Open" AND (status_id = &quo ...

  5. 正则匹配指定单词后的所有数字_Python正则表达式理解用法

    1. Python 正则式的基本用法 1.1 基本规则 1.2 重复 1.2.1 最小匹配与精确匹配 1.3 前向界定与后向界定 1.4 组的基本知识 2. re 模块的基本函数 2.1 使用 com ...

  6. python编辑距离正则匹配_(C/C++学习)33.编辑距离和正则表达式匹配分析

    说明:本文主要分析关于力扣 10 题(正则表达式匹配) 和 力扣 72 题(编辑距离) 的状态方程问题(主要便于自己理解) 1.关于编辑距离的状态方程: a. 首先 DP[i][j] 为字符串 1 的 ...

  7. js 正则匹配邮箱_日常收集JS邮箱验证正则表达式

    背景:正则是一门厚书啊,想写好也不容易,但日常中也就那些像电话.邮箱.手机,网上一堆,但真好验证好了,还得了解一点正则知识,再就是多测试了:-) 下面邮箱正则: 中划线:中划线域名就是米农口中说的扁担 ...

  8. php 正则匹配空格用什么,关于php:在正则表达式中匹配空格

    我需要在PHP正则表达式中匹配一个空格字符. 任何人有任何想法吗? 我的意思是像" gavin schulz"一样,两个单词之间的空格. 我使用正则表达式来确保只允许使用字母,数字 ...

  9. Logstash的grok正则匹配自定义

    文章目录 前言 一.grok-patterns 二.自定义grok-patterns(正则匹配) 1.自定义格式 2.组合现有patterns匹配时间 3.组合现有patterns匹配中文 4.组合现 ...

最新文章

  1. 艾伦·图灵破译纳粹密码,被视为计算机和人工智能领域的先驱。
  2. 如何给英特尔致命一击——高通公布10纳米ARM服务器芯片
  3. 第一次在Linux系统上操作mysql数据库,看完这篇轻松应对
  4. vue cli3.0创项目报错‘This may cause things to work incorrectly. Make sure to use the same version for b’
  5. pytorch查看当前学习率
  6. java annotation 实现_在Java中如何实现自己的annotation
  7. Caffarelli 关于自由边界正则性的论文C1
  8. LeetCode刷题(44)--Remove Duplicates from Sorted Array II
  9. 如何在Ubuntu上安装SQL Server
  10. zipfile中怎么关闭流_深入学习JAVA -IO流详解
  11. 使用jQuery Uploadify在ASP.NET 上传附件
  12. Linux chmod命令:修改文件或目录的权限
  13. 浅谈软件需求分析中的参与者
  14. Quartus之仿真错误#** Error (suppressible): (vsim-19) Failed to access library ‘ ‘ at “ “
  15. 文曲星猜数字游戏java_文曲星猜数字游戏
  16. ubuntu 18.04取消自动锁屏以及设置键盘快捷锁屏
  17. UWB高精度定位落地:中大型区域动态人员精细网格化管理
  18. 福大计算机课程表,福州大学研究生院-通知公告-福州大学课程表(非全日制工程硕士研究生2017年周末班公共课3-5月份 )...
  19. 华为 ACL与DHCP配置
  20. 德玛西亚服务器显示排队,告别一区高峰期排队10万? 马服艾欧尼亚迎来服务器扩容...

热门文章

  1. EAUML日拱一卒-0基础学习微信小程序(3)- 创建自己的小程序账号
  2. 2021浙江省卫生副高考试成绩查询,2021卫生职称考试成绩查询官网
  3. CSDN markdown icon 图标
  4. ROS开发之如何将树莓派采集的雷达、IMU数据在虚拟机rviz中显示?
  5. 《华为工作法》3 华为中的每个人既是工作者,也是管理者
  6. PageHelper 封装返回参数
  7. StarUML使用指南
  8. 华为OD机试题:密码截取
  9. /plus/list.php?tid= dedecms,织梦DedeCMS5.7全站实现伪静态的方法
  10. js保留两位小数,整数不补零