Regex—匹配特定字符后的一个字符
来源:互联网 发布:佳为软件 编辑:程序博客网 时间:2024/06/06 10:40
一 需求
匹配user_id = ?后面的数字
二 实现
*对应代码如下:
<?php
$tableShardKey = 'user_id';
$str = "user_id = ?2 and id = ?1";
$pattern = "/.*?$tableShardKey\s*.+?\s*\?(\d+).*?/";
// var_dump($pattern);
preg_match_all($pattern, $str, $mat);
var_dump($mat);
?>
*运行结果:
*结果
匹配user_id = ?后面的数字为$mat[1],即数字2;
三 说明
此解决方案是preg_match和分组()的联合使用;
此案例中$pattern = "/.*?$tableShardKey\s*.+?\s*\?(\d+).*?/";中的(\d+)为分组中的一个子表达式,即为$matches[1]。
1 正则表达式基础知识
详见:http://www.runoob.com/regexp/regexp-syntax.html
特殊字符:
. 匹配除“\n”之外的任何单个任意字符
限定符:
* 匹配前面的子表达式0次或多次,等价于{0,}
+ 匹配前面的子表达式1次或多次,等价于{1,}
特殊字符?的两种意义
第一种是贪婪匹配限定符,匹配前面的子表达式0次或1次,等价于{0,1};
第二种是非贪婪限定符,即当该字符紧跟在其他任意一个限定符(* + {n} {n,} {n,m}) 后面时,表示一种非贪婪匹配;非贪婪匹配尽可能少的匹配所搜索的字符串,贪婪匹配是尽可能多的匹配所搜索的字符串,比如对于字符串“111111”,模式"1+?"为非贪婪匹配,匹配结果为1,模式"1+"为贪婪匹配,匹配结果为111111;
- Regex—匹配特定字符后的一个字符
- Regex—匹配特定数字前面的一个单词
- 一个通用的php正则表达式匹配或检测或提取特定字符类
- 一个通用的php正则表达式匹配或检测或提取特定字符类
- js正则表达式 匹配两个特定字符间的内容
- js正则表达式 匹配两个特定字符间的内容
- rangeOfString不必一个字符一个字符的匹配。
- 实现一个字符匹配
- 取字符串某个特定字符后的字符串 strchr函数
- vc6.0下 使用boost regex正则表达式匹配带中文的任意字符
- 获取地址栏特定字符后面的字符
- 统计一个文件中特定字符的个数
- 获取字符串中特定字符的最后一个下标
- linux统计一个文件中特定字符的个数
- linux统计一个文件中特定字符的个数
- SQL统计一个字段里某个特定字符的个数
- linux统计一个文件中特定字符的个数
- 在一个字符串中搜索某个特定的字符值
- 逆向实战之去广告的简单练习
- css实现高亮边框
- Jedis针对redis的操作
- 树状数组的修改与查询总结
- 使用优先队列在iOS中实现消息排序
- Regex—匹配特定字符后的一个字符
- mysql数据库关联查询
- IDEA JVM 参数设置
- Qt中用qSort()快速排序例程
- php函数set_include_path()用法详解
- a标签
- javascript 使用FormData实现图片/文件异步上传
- JqGrid 实现将数据按规则插入到指定位置
- jsp获取JDK、系统、服务器信息