PHP开发者常用的正则表达式及实例【长期更新收录】

时间:2022-12-04 16:15:05

正则表达式在程序开发中是非常有用的,用好正则我们可以搜索、验证及替换文本或任何类型的字符。在这篇文章中,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开发者常用的正则表达式及实例【长期更新收录】的更多相关文章

  1. Ubuntu16&period;04系统美化、常用软件安装等,长期更新

    Ubuntu16.04系统美化.常用软件安装等,长期更新 IT之家啊 18-09-0915:00 因为我个人偏向于玩VPS.服务器之类的东西,所以一般我都是用CentOS.不过对于桌面版的Linux, ...

  2. iOS比较常用的第三方及实例&lpar;不断更新中&rpar;

    把平时看到或项目用到的一些插件进行整理,文章后面分享一些不错的实例,若你有其它的插件欢迎分享,不断的进行更新: 一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com ...

  3. IntelliJ Idea 常用功能及其快捷键总结&lpar;长期更新,纯手动&rpar;

    基础功能总结 快捷键总结 全局搜索 CTRL SHIF F 局部搜索 CTRL F 替换 CTRL R 复制一行 CTRL D 剪切一行 CTRL X 行定位 CTRL G 文件重命名 SHIFT F ...

  4. PHP正则表达式及实例

    PHP正则表达式及实例 博客分类: Php / Pear / Mysql / Node.js 正则表达式PHPWordPressFPApache  关联: 正则表达式 去除连续空白 + 获取url + ...

  5. C&plus;&plus;常用字符串分割方法实例汇总

    投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-10-08我要评论 这篇文章主要介绍了C++常用字符串分割方法实例汇总,包括了strtok函数.STL.Boost等常用 ...

  6. 常用JS正则表达式

    常用JS正则表达式 收集一些常用的JavaScript正则表达式匹配规则,比如匹配电话号码.Email.中文字符.身份证号.邮编.QQ号.过滤空白行.匹配特定数字等.觉得这玩意是很有用的,只不过自己水 ...

  7. PHP常用验证正则表达式

    PHP常用验证正则表达式 数字.手机号.QQ号.Url地址合法性校验 1.验证是否为整数 1 function isNumber($val) 2 { 3 if(ereg("^[0-9]+$& ...

  8. 常用的正则表达式归纳—JavaScript正则表达式

    来源:http://www.ido321.com/856.html 1.正则优先级 首先看一下正则表达式的优先级,下表从最高优先级到最低优先级列出各种正则表达式操作符的优先权顺序: 2.常用的正则表达 ...

  9. C&num;开发学习——常用的正则表达式

    对于想学习正则表达式的童鞋,一些基础的语法啥的,可以参考 http://www.cnblogs.com/China3S/archive/2013/11/30/3451971.html 下边是一些我们常 ...

随机推荐

  1. javaweb 中的路径问题汇总

    路径问题汇总  http://localhost/day10/AServlet     request.getRequestDispatcher("/AServlet") ==&g ...

  2. python 版 mldivide matlab 反除(左除)《数学建模算法与程序》Python笔记

    今天在阅读数学建模的时候看到了差分那章 其中有一个用matlab求线性的代码,这里我贴出来 这里我送上 Python代码 In [39]: import numpy as np ...: from s ...

  3. zepto-selector&period;js简单分析

    zepto 的selector模块是对jquery扩充选择器(jquery-selector-extensions)的部分实现.比如这样的选择方法:$('div:first') 和 el.is(':v ...

  4. Adobe Photoshop CC 14&period;0简体中文特别版32位和64位下载

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  5. java 新建文件夹保存

    String Txtname = field.getText();                File file3 =new File("D:\\MATP_robot"+&qu ...

  6. app开发历程——android手机显示服务器端图片思路

    以前自己都不知道怎么去显示服务器端的图片,还好在apkbus论坛上找到一个特别简单的例子.虽然一天天忙忙碌碌,但是自己内心其实有一种想逃的心里,说不定哪天就会冒出来. 1.首先服务器端图片 这里的Im ...

  7. Fragmen和Activity之间的通信--接口和实现的分离&lpar;转&rpar;

    Fragmen和Activity之间的通信--接口和实现的分离(转) 分类: Android平台     在平板的开发过程中通常都会采用多个Fragment的实现方式,通常有一个为list的Fragm ...

  8. 奔跑在Docker上的Spark

    转自:马踏飞燕--奔跑在Docker上的Spark 目录 为什么要在Docker上搭建Spark集群 网络拓扑 Docker安装及配置 ssh安装及配置 基础环境安装 Zookeeper安装及配置 H ...

  9. 团队作业10——项目复审与事后分析(Beta版本)

    油炸咸鱼24点APP 团队作业10--事后诸葛亮分析; 团队作业10--Beta阶段项目复审;

  10. 虚拟机下hadoop1&period;1&period;2安装(单机版)与(集群版)

    (1)我的电脑环境 CentOS6.5,64位,在虚拟机下实现. (2)jdk1.6的安装 jdk我用的是1.6.0_27,自己在网上下载jdk-6u27-linux-x64.zip 先在/usr/l ...