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 下边是一些我们常 ...
随机推荐
- tomcat启动非常慢;连接oracle数据库失败,jdbc错误日志提示connection reset;测试主机间网络互通及数据库端口都正常
[判断确认:这时候大家可能要去检查一下/dev/random 这个设备档案.可以用cat /dev/random 来看它的内容,如果你发现他一直没显示任何内容﹝可能是乱码数字之类的﹞,那就是它出问 ...
- c#与webapi交互
public static string HttpConnectToServer(string ServerPage,string strData) { string postData =strDat ...
- Fiddler抓包使用教程-断点调试
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/62896784 本文出自[赵彦军的博客] Fiddler 里面的断点调试有2种方式. ...
- SublimeText3常用快捷键和优秀插件
SublimeText3常用快捷键和优秀插件 SublimeText是前端的一个神器,以其精简和可DIY而让广大fans疯狂.好吧不吹了直入正题 -_-!! 首先是安装,如果你有什么软件管家的话搜一下 ...
- C# 获取文件下载的各种方法
public class RemoteDownload { public static void DownLoad(string addressUrl,string localName) { //下载 ...
- [ASP.NET MVC] Controlle中的Aciton方法数据接收方式
POST数据接收方式包括: 1.request.Form:(逐个获取表单提交的数据); FormCollection: [HttpPost]public async Task<string> ...
- leetcode_1. Two Sum
leetcode_1. Two Sum 前言: 这段时间开始敲leetcode.我认为这并不仅仅只是为了应付笔试,面试.而是确实有着一定的意义. 尤其,你提交代码后,网站会多方面验证你的答案. 另外, ...
- 【方案】mvc 保证定时器回收限制
在项目中我们或多或少的遇到一些需要定时触发或者计算的东西,这个时候我们就需要定时器来作为解决方案.非常好思路清晰,业务逻辑完好,定时器也开好了,当我们信心满满的挂到IIS服务器的时候,发现写的定时器在 ...
- 字典的.get方法
字典的.get方法表示是dict.get(key,default)用于判断建是否存在,存在返回键对应的值,不存在返回指定的default值 dict = {'a':1,'b':2} dict.get( ...
- Python_字符串的大小写变换
''' lower().upper().capitalize().title().swapcase() 这几个方法分别用来将字符串转换为小写.大写字符串.将字符串首字母变为大写.将每个首字母变为大写以 ...