正则表达式中的“元字符”

* 匹配前一个内容的0次1次或多次

例如:

<?php
$mode="/go*gle/"; //前一个内容指的是 * 的前一个字符 o ,在$str中出现的次数最少0次。也就是说,可以出现,也可以不出现。
$str="google";
$flag=preg_match($mode, $str, $arr);
//print_r($arr);
if($flag){
echo "匹配成功".$arr[0];
}else{
echo "匹配失败";
}
?> 输出: 匹配成功google

. 匹配内容的0次1次或多次,但不包含回车换行

例如:

<?php
$mode="/go.gle/"; //与 * 的用法类似,就是将 \n 排除在外
$str="google";
$flag=preg_match($mode, $str, $arr);
//print_r($arr);
if($flag){
echo "匹配成功".$arr[0];
}else{
echo "匹配失败";
}
?> 输出: 匹配成功google

+ 匹配前一个内容的1次或多次

例如:

<?php
$mode="/go+gle/"; //与 * 的用法类似,将0次排除在外。
$str="gooogle";
$flag=preg_match($mode, $str, $arr);
//print_r($arr);
if($flag){
echo "匹配成功".$arr[0];
}else{
echo "匹配失败";
}
?> 输出: 匹配成功gooogle

?匹配前一个内容的0次或1次

例如:

<?php
$mode="/go?gle/"; //与*用法类似,将多次排除在外
$str="gogle";
$flag=preg_match($mode, $str, $arr);
//print_r($arr);
if($flag){
echo "匹配成功".$arr[0];
}else{
echo "匹配失败";
}
?> 输出: 匹配成功gogle

| 选择匹配类似PHP中的| (因为这个运算符合是弱类型导致前面最为整体匹配)

例如:

<?php
$mode="/google|abc/"; //google和bac 同时在$str中出现 或者 google出现 或者 bac出现。
$str="googlebac";
$flag=preg_match($mode, $str, $arr);
//print_r($arr);
if($flag){
echo "匹配成功".$arr[0];
}else{
echo "匹配失败";
}
?> 输出: 匹配成功google

^ 匹配字符串首部内容

例如:

<?php
$mode="/^google/"; //字符串google出现在$str的首部
$str="googleabc";
$flag=preg_match($mode, $str, $arr);
//print_r($arr);
if($flag){
echo "匹配成功".$arr[0];
}else{
echo "匹配失败";
}
?> 输出: 匹配成功google

$ 匹配字符串尾部内容

例如:

<?php
$mode="/google$/"; //google出在$str的尾部
$str="abcgoogle";
$flag=preg_match($mode, $str, $arr);
//print_r($arr);
if($flag){
echo "匹配成功".$arr[0];
}else{
echo "匹配失败";
}
?> 输出: 匹配成功google

\b 匹配单词边界,边界可以是空格或者特殊符合

例如:

<?php
$mode="/\bgoogle\b /"; //匹配$str中的空格或者是其他字符
$str="abc google ";
$flag=preg_match($mode, $str, $arr);
//print_r($arr);
if($flag){
echo "匹配成功".$arr[0];
}else{
echo "匹配失败";
}
?> 输出: 匹配成功google

\B 匹配除带单词边界之外的内容

例如:

<?php
$mode="/\bgoogle\B/"; //匹配除带单词之外的内容
$str="abc googleabc";
$flag=preg_match($mode, $str, $arr);
//print_r($arr);
if($flag){
echo "匹配成功".$arr[0];
}else{
echo "匹配失败";
}
?> 输出: 匹配成功google

{m} 匹配前一个内容的重复次数为M次

例如:

<?php
$mode="/go{2}gle/"; //匹配$str中的字符 o 出现2次
$str="google";
$flag=preg_match($mode, $str, $arr);
//print_r($arr);
if($flag){
echo "匹配成功".$arr[0];
}else{
echo "匹配失败";
}
?> 输出: 匹配成功google

{m,} 匹配前一个内容的重复次数大于等于M次

例如:

<?php
$mode="/go{2,}gle/"; //匹配$str中字符 o 的次数大于等于2次
$str="gooogle";
$flag=preg_match($mode, $str, $arr);
//print_r($arr);
if($flag){
echo "匹配成功".$arr[0];
}else{
echo "匹配失败";
}
?> 输出: 匹配成功gooogle

{m,n} 匹配前一个内容的重复次数M次到N次

例如:

<?php
$mode="/go{2,4}gle/"; //匹配$str中字符 o 大于2次小于4次
$str="gooogle";
$flag=preg_match($mode, $str, $arr);
//print_r($arr);
if($flag){
echo "匹配成功".$arr[0];
}else{
echo "匹配失败";
}
?> 输出: 匹配成功gooogle

( ) 合并整体匹配,并放入内存,可使用\1 \2…依次获取

例如:

<?php
$mode="/goo(abc)gle/"; //匹配$str中的abc
$str="gooabcgle";
$flag=preg_match($mode, $str, $arr);
//print_r($arr);
if($flag){
echo "匹配成功".$arr[0];
}else{
echo "匹配失败";
}
?> 输出: 匹配成功gooabcgle

PHP中正则表达式学习及应用(二)

本节内容的视频教程:链接: http://pan.baidu.com/s/1bn4UaiN 密码: net6

PHP中正则表达式学习及应用(二)的更多相关文章

  1. PHP中正则表达式学习及应用(四)

    正则表达式在PHP中的应用 1.匹配功能 2.替换功能 3.分割功能 例如: <?php $str="addsds{title}hfksjd{author}hfjdkjd{conn}j ...

  2. PHP中正则表达式学习及应用(三)

    正则表达式中的“模式修正符” 1.运算顺序    2.模式修正符 i 正则内容在匹配时候不区分大小写(默认是区分的) 例如: <?php $mode="/[a-z]/i"; ...

  3. PHP中正则表达式学习及应用(一)

    1.正则表达式的介绍和作用 什么是正则表达式 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串 的需要.正则表达式就是用于描述这些规则的语法. 例:在判断用户邮件地址格式.手机号码 ...

  4. JAVA中正则表达式学习总结

    一.JAVA中正则表达式相关的类 1. java.util.regex.Pattern 该类用于编译模式,模式可以理解为一个正则表达式,比如:a*b. 用法如下: // 创建模式 Pattern p ...

  5. delphi正则表达式学习笔记(二)

    正则表达式大全 字符 描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个向后引用.或一个八进制转义符.例如,"n"匹配字符"n"."\n ...

  6. java基础---->java中正则表达式二

    跟正则表达式相关的类有:Pattern.Matcher和String.今天我们就开始Java中正则表达式的学习. Pattern和Matcher的理解 一.正则表达式的使用方法 一般推荐使用的方式如下 ...

  7. JMeter学习-009-JMeter 后置处理器实例之 - 正则表达式提取器(二)多参数获取

    前文简述了通过后置处理器 - 正则表达式提取器 获取 HTTP请求 响应结果中的特定数据,未看过的亲,敬请参阅 JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一). ...

  8. JavaScript正则表达式学习笔记(二) - 打怪升级

    本文接上篇,基础部分相对薄弱的同学请移步<JavaScript正则表达式学习笔记(一) - 理论基础>.上文介绍了8种JavaScript正则表达式的属性,本文还会追加介绍几种JavaSc ...

  9. python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL

    python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...

随机推荐

  1. NYOJ 905 卡片游戏

    卡片游戏 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描写叙述 小明近期宅在家里无聊.于是他发明了一种有趣的游戏.游戏道具是N张叠在一起的卡片,每张卡片上都有一个数字,数字 ...

  2. EOF需要两次才能结束输入

    .EOF作为文件结束符时的情况:  EOF虽然是文件结束符,但并不是在任何情况下输入Ctrl+D(Windows下Ctrl+Z)都能够实现文件结束的功能,只有在下列的条件下,才作为文件结束符.(1)遇 ...

  3. Spring AOP(转载)

    此前对于AOP的使用仅限于声明式事务,除此之外在实际开发中也没有遇到过与之相关的问题.最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP 来解决.一方面是为了以更加灵活的方式来解决问题,另一方 ...

  4. HDU5363:Key Set

    Problem Description soda has a set S with n integers {1,2,-,n}. A set is called key set if the sum o ...

  5. win10下rose2003安装与破解(图解)

    系统刷成了win10的,因为选择的是全新安装的方式,所以开发工具又得又一次安装了,rose尽管好用.但是安装破解还是有点麻烦,这里整理一下.备用,下回就不须要去网上搜索了. 安装文件下载地址:链接: ...

  6. mysql 中的增改查删(CRUD)

    增改查删可以用CURD来表示  增加:create  修改:update   查找:read      删除:delete 增加create :  insert +表名+values+(信息): in ...

  7. Easyui datagrid 怎么添加操作按钮,rowStyler

    说明:本篇文章主要是展示怎么设置easyUI datagrid的格式,包括行样式和列样式,以及添加操作按钮列 开发环境 vs2012  asp.net mvc4 c# 1.效果图 3.HTML代码 & ...

  8. STM32 ~ 查看系统时钟

    调用库函数RCC_GetClocksFreq,该函数可以返回片上的各种时钟的频率 函数原形 void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks) ...

  9. RobotFramework教程使用笔记——Selenium2Library库

    selenium之前已经学习介绍过了,它是一个支持多语言.多平台.多浏览器的web自动化测试框架,在robotframework中也可以导入selenium库来进行web自动化测试.它使用seleni ...

  10. 6个基本screen命令

    screen -S  <name>    直接建立并进入<name>窗口 control+a    d    暂时退出窗口 (在会话内) screen -r <name& ...