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

* 匹配前一个内容的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. Kubernetes对象之Pod

    系列目录 Pod是Kubernetes调度的最小单元.一个Pod可以包含一个或多个容器,因此它可以被看作是内部容器的逻辑宿主机.Pod的设计理念是为了支持多个容器在一个Pod中共享网络和文件系统 因此 ...

  2. SQL 游标示例

    DECLARE @i INT ) --给初始值 CREATE TABLE #temp_test --创建临时表 ( num ) ) ) BEGIN INSERT INTO #temp_test ( n ...

  3. 使用jquery datatables插件遇到fnReloadAjax的问题

    1 官网地址:http://www.datatables.net/ 2 基本参数介绍 http://blog.csdn.net/mickey_miki/article/details/8240477 ...

  4. Storage Types and Storage Policies

    https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/ArchivalStorage.html Introduc ...

  5. JVM client模式和Server模式

    我们把jdk安装完成后,在命名行输入java -version 不仅可以看到jdk版本相关信息,还会看到类似与 Java HotSpot(TM) 64-Bit Server VM (build 25. ...

  6. s:if

    <s:iterator value="value[3]" id="ques" status="s"> <s:if test ...

  7. SCOI2017 游记(AFO)

    SCOI2017 游记(AFO) Day 0 上午模拟考,又tm用暴力a了一道题,心情舒畅.(要是省选也这样该有多好,2333) 晚上又去吃了什么不知名的东西,自己都忘了,总之好像很好吃的样子. Da ...

  8. return;测试

    一 没有return;,则会顺序执行到最后 <!DOCTYPE html> <html> <head> <meta charset="UTF-8&q ...

  9. socket技术与负载均衡

    网络编程 Nginx1.9之前使用 Lvs  Haproxy 实现四层反向和负载均衡 Lvs可以i应用到所有负载均衡的功能 数据库 web服务等 四层负载均衡,根据连接进行保存. 断开,连接.进行轮训 ...

  10. BZOJ 1632 [Usaco2007 Feb]Lilypad Pond:spfa【同时更新:经过边的数量最小】【路径数量】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1632 题意: 有一个n*m的池塘.0代表水,1代表荷花,2代表岩石,3代表起点,4代表终点 ...