PHP开发者常用的正则表达式及实例【长期更新收录】
正则表达式在程序开发中是非常有用的,用好正则我们可以搜索、验证及替换文本或任何类型的字符。在这篇文章中,UncleToo为大家搜集了15个开发过程中常用的PHP正则表达式、函数及PHP示例,学习这些你会发现正则有多么强大。
从字符串中删除特定字符:本段代码实现删除字符串中除所有大小写字母及数字以外的字符。
- <?php
- $value = "wWw.nongyejing.Com - 【nongyejing】 - 12345";
- $value = preg_replace("/[^A-Za-z0-9]/","",$value);
- echo $value;
- ?>
验证用户名:以下代码验证用户名是否由字母、数字及下划线组成。
- <?php
- $username = "nongyejing_COM123";
- if (preg_match('/^[a-z\d_]{5,20}$/i', $username)) {
- echo "用户名可用";
- } else {
- echo "用户名存在特殊字符";
- }
- ?>
添加信息到图片alt属性:使用下面函数,可以实现将文章标题添加到图片的alt属性中。
- <?php
- function add_alt_tags($content)
- {
- global $post;
- preg_match_all('/<img (.*?)\/ >/', $content, $images);
- if(!is_null($images))
- {
- foreach($images[1] as $index => $value)
- {
- if(!preg_match('/alt=/', $value))
- {
- $new_img = str_replace('<img', '<img alt="'.get_the_title().'"', $images[0][$index]);
- $content = str_replace($images[0][$index], $new_img, $content);
- }
- }
- }
- return $content;
- }
- ?>
将EMail文本自动添加Mailto链接
- <?php
- $text = "demo@abc.com";
- $string = eregi_replace('([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})','<a href="mailto:\\1">\\1</ a>', $text);
- echo $string;
- ?>
过滤限制级词语
- <?php
- function filtrado($texto, $reemplazo = false)
- {
- $filtradas = 'admin,nongyejing,农业经'; //这里定义需要过滤的词语
- $f = explode(',', $filtradas);
- $f = array_map('trim', $f);
- $filtro = implode('|', $f);
- return ($reemplazo) ? preg_replace("#$filtro#i", $reemplazo, $texto) : preg_match("#$filtro#i", $texto) ;
- }
- ?>
验证电话号码:这是一个很常见的功能 例如:展报
- <?php
- $string = "(010) 555-5555";
- if (preg_match('/^\(?[0-9]{3}\)?|[0-9]{3}[-. ]? [0-9]{3}[-. ]?[0-9]{4}$/', $string)) {
- echo "successful.";
- }
- ?>
替换超链接href属性的内容:
- <?php
- $html = '<a href="http://www.nongyejing.com">农业经</a>';
- $replacement = "yes";
- $pattern = '/(?<=href\=")[^]]+?(?=")/';
- $replacedHrefHtml = preg_replace($pattern, $replacement, $html);
- echo $replacedHrefHtml ;
- ?>
在页面上查看源文件,显示为:<a href="yes">农业经</a>
验证邮箱正则表达式:此功能在用户注册是经常使用
- <?php
- $regex = "([a-z0-9_.-]+)". # name
- "@". # at
- "([a-z0-9.-]+){2,255}". # domain & possibly subdomains
- ".". # period
- "([a-z]+){2,10}"; # domain extension
- $eregi = eregi_replace($regex, '', $email);
- $valid_email = empty($eregi) ? true : false;
- ?>
IP地址验证
- <?php
- $string = "255.255.255.255";
- if (preg_match(
- '/^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$/',
- $string)) {
- echo "IP address is good.";
- }
- ?>
邮政编码验证
- <?php
- $string = "12345-1234";
- if (preg_match('/^[0-9]{5}([- ]?[0-9]{4})?$/', $string)) {
- echo "zip code checks out";
- }
- ?>
高亮显示文本:
- <?php
- <?php
- $text = "农业经(www.nongyejing.com)农业经网;
- $text = preg_replace("/\b(www)\b/i", '<span style="background:#5fc9f6">\1</ span>', $text);
- echo $text;
- ?>
从特定的URL中提取域名;输出:www.jiaxiangz.com
- <?php
- $url = "http://www.jiaxiangz.com/plug/tags/?tag=嘉祥新闻";
- preg_match('@^(?:http://)?([^/]+)@i', $url, $matches);
- $host = $matches[1];
- echo $host;
- ?>
验证域名格式是否正确:
- <?php
- $url = "http://www.453s.com/";
- if (preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i', $url)) {
- echo "域名格式正确.";
- } else {
- echo "域名格式错误.";
- }
- ?>
使用文章标题生成URL:输出:my-name-is-nongyejing
- <?php
- function create_slug($string){
- $slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string);
- return $slug;
- }
- echo create_slug('my name is nongyejing');
- ?>
添加http://到URL地址
当我们需要用户填写网址时,很多用户往往不填写http://直接输入域名,使用下面代码可将http://添加到网址的前面。
- <%
- if (!preg_match("/^(http|https|ftp):/", $_POST['url'])) {
- $_POST['url'] = 'http://'.$_POST['url'];
- }
- %>
将URL转换为超链接
这时一个很有用的功能,他可以将url地址或email地址转换为可点击的超链接文本。例如:国画网
- <?php
- function makeLinks($text) {
- $text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)','\1', $text);
- $text = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)','\1\2', $text);
- $text = eregi_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})','\1', $text);
- return $text;
- }
- ?>
------------------------------------------ 持续更新中 ,2018-5-26----------------------------------------------------------
PHP开发者常用的正则表达式及实例【长期更新收录】的更多相关文章
- Ubuntu16.04系统美化、常用软件安装等,长期更新
Ubuntu16.04系统美化.常用软件安装等,长期更新 IT之家啊 18-09-0915:00 因为我个人偏向于玩VPS.服务器之类的东西,所以一般我都是用CentOS.不过对于桌面版的Linux, ...
- iOS比较常用的第三方及实例(不断更新中)
把平时看到或项目用到的一些插件进行整理,文章后面分享一些不错的实例,若你有其它的插件欢迎分享,不断的进行更新: 一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com ...
- IntelliJ Idea 常用功能及其快捷键总结(长期更新,纯手动)
基础功能总结 快捷键总结 全局搜索 CTRL SHIF F 局部搜索 CTRL F 替换 CTRL R 复制一行 CTRL D 剪切一行 CTRL X 行定位 CTRL G 文件重命名 SHIFT F ...
- PHP正则表达式及实例
PHP正则表达式及实例 博客分类: Php / Pear / Mysql / Node.js 正则表达式PHPWordPressFPApache 关联: 正则表达式 去除连续空白 + 获取url + ...
- C++常用字符串分割方法实例汇总
投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-10-08我要评论 这篇文章主要介绍了C++常用字符串分割方法实例汇总,包括了strtok函数.STL.Boost等常用 ...
- 常用JS正则表达式
常用JS正则表达式 收集一些常用的JavaScript正则表达式匹配规则,比如匹配电话号码.Email.中文字符.身份证号.邮编.QQ号.过滤空白行.匹配特定数字等.觉得这玩意是很有用的,只不过自己水 ...
- PHP常用验证正则表达式
PHP常用验证正则表达式 数字.手机号.QQ号.Url地址合法性校验 1.验证是否为整数 1 function isNumber($val) 2 { 3 if(ereg("^[0-9]+$& ...
- 常用的正则表达式归纳—JavaScript正则表达式
来源:http://www.ido321.com/856.html 1.正则优先级 首先看一下正则表达式的优先级,下表从最高优先级到最低优先级列出各种正则表达式操作符的优先权顺序: 2.常用的正则表达 ...
- C#开发学习——常用的正则表达式
对于想学习正则表达式的童鞋,一些基础的语法啥的,可以参考 http://www.cnblogs.com/China3S/archive/2013/11/30/3451971.html 下边是一些我们常 ...
随机推荐
- Javascript二(函数详解)
一.函数 Javascript是一门基于对象的脚本语言,代码复用的单位是函数,但它的函数比结构化程序设计语言的函数功能更丰富.JavaScript语言中的函数是"一等公 ...
- 在cmd下运行Python脚本+如何使用Python Shell
原文:https://blog.csdn.net/flyfrommath/article/details/77447587?locationNum=2&fps=1
- JAVA 语法2
1.算术运算符 运算符 运算规则 范例 结果 + 正号 +3 3 + 加 2+3 5 + 连接字符串 "中"+"国" "中国" - 负号 i ...
- java之web开发过滤器
我们通常上网的时候都会遇到一个问题,看到一个视频之类的,想要点开观看,点击之后,网页 提醒你:您尚未登录,是否要登录?然后巴拉巴拉跑去输账号密码. 那么这就是一个过滤器的功能,当你要访问一个资源的时候 ...
- prometheus alert rules文件格式化
1.下载go(version>1.9,否则promtool工具不好使) https://golang.org/doc/install?download=go1.10.2.linux-amd64. ...
- php递归实现无限级分类树
作者: PHP中文网|标签:PHP 递归 无限级树|2017-5-18 18:09 无限级树状图可以说是无限级栏目的一个显著特征,我们接下来就来看看两种不同的写法. 一.数据库设计 1 2 3 ...
- ambari安装集群下安装kafka manager
简介: 不想通过kafka shell来管理kafka已创建的topic信息,想通过管理页面来统一管理和查看kafka集群.所以选择了大部分人使用的kafka manager,我一共有一台主机mast ...
- Java枚举enum以及应用:枚举实现单例模式
枚举作为一个常规的语言概念,一直到Java5才诞生不得不说有点奇怪,以至于到现在为止很多程序员仍然更喜欢用static final的形式去命名常量而不使用,一般情况下,Java程序员用这种方式去实现枚 ...
- 用分支限界法解决人员安排问题(Personnel assignment problem)
最近考期博主比较忙,先把思路简单说说,图和代码考完试补. 人员安排问题,即给出员工集合和工作集合,寻找最合理的安排. 对于员工集合P,员工集合会依据某个f来给出某种顺序,需要按该顺序P(i)进行工作安 ...
- 读《图解HTTP》有感-(简单的HTTP协议)
写在前面 该章节主要是针对HTTP1.1版本进行基础的讲解 正文 HTTP协议能做什么: http协议用于客户端和服务端之间的通信 HTTP协议通信方式: http协议是基于请求响应的方式来实现消息通 ...