php 正则表达式的使用
要点:php正则表达式要用双引号,且要用“/ /”斜线做开始结束。
1、preg_match 、 preg_match_all
两者的区别:第一次匹配成功后就会停止匹配,如果要实现全部结果的匹配,即搜索到subject结尾处,则需使用 preg_match_all()
int preg_match(pattern, subject)
int preg_match_all(pattern, subject, matches)
两者函数都是 返回值是0或1。找不到返回0。
//遍历“/log”文件夹,匹配文件名储存到数组 $logFileArr = scandir("/log");
$fileArr = "";
for($i=0; $i<count($logFileArr); $i++)
{
if(preg_match("/^JD_cloud.log[.]*[0-9]*$/",$logFileArr[$i],$m))
{
// print_r($m);
$fileArr[] = "/log/".$m[0];
}
}
NOTICE:
$str = "1,2,9";
if(preg_match("/^(([0-8]{1}),)*([0-8]{1})$/",$str,$matches))
{
print_r($matches);
echo "success";
}
else
{
echo "error";
}
如果正则表达式
/^(([0-8]{1}),)*([0-8]{1})$/
里没有加入^ $开关和结尾的正则符时,会出现匹配成功的情况。
- ^:表示匹配字符串的开始,也即该字符串是独立的开始而不是包含在某个字符串之内
- $:表示匹配字符串的结束,也即该字符串是独立的结束
2、根据正则表达式进行替换
mixed preg_replace(pattern, replacement, subject)
进行字符串或数组的正则表达式的替换。可替代preg_grep
<?
// 将“:”替换为“-”
$item = "F0:FF:20:DE:80"
$item = preg_replace("/:/","-",$item);
?>
3、在数组中查找符合的正则表达式的内容
array preg_grep ( string $pattern , array $input [, int $flags = 0 ] )
4、 一些常用的正则表达式
匹配Ip, 子网掩码, 网关
if(preg_match($preg_str, $ip)&& preg_match($preg_str,$gateway) && preg_match($preg_str,$submask) ) { if( (ip2long($ip) & ip2long($submask)) != (ip2long($gateway) & ip2long($submask)))
{
// $dataArr['NetmateGateway'] = $dataArr['NetmateIPAddr'];
$gateway = $ip;
} $cUsrConf->set_ini_file("network","ipaddr",$ip);
$cUsrConf->set_ini_file("network","gateway",$gateway);
$cUsrConf->set_ini_file("network","mask",$submask); }else{ $alertStr ="ip、子网掩码及网关设置不正确"; }
php 正则表达式的使用的更多相关文章
- JS正则表达式常用总结
正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...
- Python高手之路【五】python基础之正则表达式
下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...
- C# 正则表达式大全
文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...
- C#基础篇 - 正则表达式入门
1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...
- JavaScript正则表达式,你真的知道?
一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...
- Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
- 【JS基础】正则表达式
正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z ...
- JavaScript 正则表达式语法
定义 JavaScript定义正则表达式有两种方法. 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i"); ...
- [jquery]jquery正则表达式验证(手机号、身份证号、中文名称)
数字判断方法:isNaN()函数 test()方法 判断字符串中是否匹配到正则表达式内容,返回的是boolean值 ( true / false ) // 验证中文名称 function isChin ...
- JS中给正则表达式加变量
前不久同事询问我js里面怎么给正则中添加变量的问题,遂写篇博客记录下. 一.字面量 其实当我们定义一个字符串,一个数组,一个对象等等的时候,我们习惯用字面量来定义,例如: var s = &quo ...
随机推荐
- 用DOS命令打开IE浏览器、我的文档等等
用DOS命令打开IE浏览器 在“start”-运行中直接输入网址就可以了.如输入百度: http://www.baidu.com Command:[ start http://www.baidu.c ...
- 同样有缓冲区,为什么bufferedReader输入流不需要清空缓冲区?而bufferedWriter需要清空缓冲区呢?
当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取, 如果缓冲区数据不足,才会再从文件中读取.清不清空Buf ...
- VS2012旗舰版接选择调试 出现了这样一个错误
问题: 解决: 项目-右键-属性,勾选如下配置试试
- global--命名空间的使用(一些零散的js方法)
var GLOBAL = {}; GLOBAL.namespace = function (str) { var arr = str.split('.'), o = GLOBAL; for (var ...
- JavaWeb---总结(八)HttpServletResponse对象(二)
一.HttpServletResponse常见应用--生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类, 生成随机图片范例: 1 package gacl ...
- JS-纯js制作动态成绩表(流程控制语句+js内置对象)
流程控制for循环+if判断+Math对象+Array对象+Date对象制作成绩表 <!DOCTYPE html><html> <head> <meta ch ...
- linux第一面
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.作为一个 Linux系统管理员,我看了许多有关Linux的文档和书籍,并为学习 ...
- BZOJ4004: [JLOI2015]装备购买
总之就是线性基那一套贪心理论直接做就好了. 然而加强数据后很卡精度的样子. 于是重点在于这个特技:在整数模意义下搞. #include<cstdio> #include<algori ...
- ios动态添加属性的几种方法
http://blog.csdn.net/shengyumojian/article/details/44919695 在ios运行过程中,有几种方式能够动态的添加属性. 1-通过runtime动态关 ...
- Git创建ssh-key
打开git bash界面,输入: ssh-keygen -t rsa -C "yourname@email.com" 一路回车,后续保持默认值即可. 把C:\users\yourn ...