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

* 匹配前一个内容的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. JavaScript语言基础9

    我们先看看以下这段代码: <span style="font-size:18px;"><HTML> <HEAD> <TITLE>He ...

  2. Ubuntu16.04下自定义命令

    每次启动pycharm的时候需要敲一段很长的文本,真的是感觉好麻烦啊,如果能直接敲命令启动就好了,既装B又实用的 那么到底应该怎么做呢?其实挺简单的 在文件/root/.bashrc 中添加下边的几行 ...

  3. 九度OJ 1103:二次方程计算器 (解方程)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2804 解决:633 题目描述: 设计一个二次方程计算器 输入: 每个案例是关于x的一个二次方程表达式,为了简单,每个系数都是整数形式. 输 ...

  4. r squared

    multiple r squared adjusted r squared http://web.maths.unsw.edu.au/~adelle/Garvan/Assays/GoodnessOfF ...

  5. java之快速排序

    //基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据 ...

  6. 云计算系列——HIVE1.2.1 环境搭建

    hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行. 其优点是学习成本低,可以通过 ...

  7. mac10.10 打造Python多版本虚拟环境

    一.简介 1.在操作系统mac10.10(yosemite)中搭建Python多版本虚拟环境: 2.多版本虚拟环境包含三个含义: 在一个操作系统中安装多个版本的Python,不同版本可以随意切换,例如 ...

  8. protoc: error while loading shared libraries: libprotoc.so.9: cannot open shared object

    使用protobuf出错:protoc: error while loading shared libraries: libprotoc.so.9: cannot open shared object ...

  9. 使用官方Android-support-v7在低版本上使用ActionBarActivity

    昨天晚上更新了下Android SDK Manager,发现Extras下的Android Support Library已经更新到19.1了,上网一查原来是sdk\extras\android\su ...

  10. vue程序中组件间的传值方式

    vue程序在组件中进行传值有多种方式,这里记录我在项目中使用到的三种: 1. 父组件向子组件传值 2. 子组件向父组件传值 3. 通过路由传参 父组件通过props向子组件传值 在子组件script中 ...