要点: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})$/

里没有加入^ $开关和结尾的正则符时,会出现匹配成功的情况。

  1. ^:表示匹配字符串的开始,也即该字符串是独立的开始而不是包含在某个字符串之内
  2. $:表示匹配字符串的结束,也即该字符串是独立的结束

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 正则表达式的使用的更多相关文章

  1. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  2. Python高手之路【五】python基础之正则表达式

    下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...

  3. C# 正则表达式大全

    文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...

  4. C#基础篇 - 正则表达式入门

    1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...

  5. JavaScript正则表达式,你真的知道?

    一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...

  6. Python 正则表达式入门(中级篇)

    Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...

  7. 【JS基础】正则表达式

    正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z ...

  8. JavaScript 正则表达式语法

    定义 JavaScript定义正则表达式有两种方法. 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i"); ...

  9. [jquery]jquery正则表达式验证(手机号、身份证号、中文名称)

    数字判断方法:isNaN()函数 test()方法 判断字符串中是否匹配到正则表达式内容,返回的是boolean值 ( true / false ) // 验证中文名称 function isChin ...

  10. JS中给正则表达式加变量

    前不久同事询问我js里面怎么给正则中添加变量的问题,遂写篇博客记录下.   一.字面量 其实当我们定义一个字符串,一个数组,一个对象等等的时候,我们习惯用字面量来定义,例如: var s = &quo ...

随机推荐

  1. PTA fzu_oop_east

    GitHub链接: 传送门 5-1该日是该年的第几天 定义一个日期类Date,内有数据成员年.月.日,另有成员函数:构造函数用于初始化数据成员,输出,闰年的判断. 编写主函数:创建日期对象,计算并输出 ...

  2. COGS1117

    传送门: 差分约束第一题. 所有的条件无非两种不等式 $d[i]-d[j]>=dist$ $d[i]-d[j]<=dist$ 然后进行变形 $d[i]-d[j]>=dist$     ...

  3. HTTP,TCP/IP协议

    本文转自cnblogs:http://www.cnblogs.com/xhwy/archive/2012/03/03/2378293.html 一.概述 1.1 TCP   HTTP   UDP: 都 ...

  4. ES6之let(理解闭包)和const命令

    ES6之let(理解闭包)和const命令 最近做项目的过程中,使用到了ES6,因为之前很少接触,所以使用起来还不够熟悉.因此购买了阮一峰老师的ES6标准入门,在此感谢阮一峰老师的著作. 我们知道,E ...

  5. JavaScriptCore框架介绍

    http://www.cocoachina.com/ios/20140409/8127.html 这个框架其实只是基于webkit中以C/C++实现的JavaScriptCore的一个包装,在旧版本i ...

  6. glade2支持C++代码的输出(3)

    今天完成了glade-2生成configure.ac/Makefile.am等调整 代码为:cpp_out_4.patch.zip BaseObject类也做了一些小的调整:BaseObject.00 ...

  7. shiro 更改登录的用户名

    ShiroUser user = (ShiroUser) SecurityUtils.getSubject().getPrincipal(); user.name = newName;

  8. FCC上的初级算法题

    核心提示:FCC的算法题一共16道.跟之前简单到令人发指的基础题目相比,难度是上了一个台阶.主要涉及初步的字符串,数组等运算.仍然属于基础的基础,官方网站给出的建议完成时间为50小时,超出了之前所有非 ...

  9. 一段发工资的shell代码

    人事发工资条之前是一个个截图发到我们的邮箱里,看人事妹纸是一个善良而又美丽的姑凉,于是乎写了一段shell代码实现批量发短信至各个手机号.不多说了,上代码,其实很简单,我都不好意思上传,还是记录下吧, ...

  10. GitHub 在 Clion2016.1.3 中的设置

    1.在 GitHub 上注册,建立一个 Repositories,结果获得如下 https://github.com/GPerelman/Clion2016.1.3.git 2.打开 git-bash ...