则表达式获取字符串的重复情况需要对指定的字符串使用括号()进行分组,但不想让圆括号中的字模式匹配的文本出现在包含匹配文本的数组中,可以使用问号冒号?:

把?:放在第一个圆括号的后面就可以。

例如匹配dx在字符串中重复的情况使用/(?:dx)+/,加号表示dx出现1次或是多次

代码如下

preg_match_all("/(?:dx)+/",$str,$all);

print_r($all);

?>

输出:

Array

(

[0] => Array

(

[0] => dx

[1] => dxdx

[2] => dxdxdx

[3] => dxdxdx

)

)

基于知识补充

正则表达式中有一些用于重复匹配其前原子的元字符:“?”、“*”、“+”。他们主要的不同是重复匹配的次数不同。

元字符“?”表示0次或1次匹配紧接在其前的原子。例如:/colou?r/匹配“colour”或“color”。

元字符“*”表示0次、1次或多次匹配紧接在其前的原子。例如://可以匹配“

”、“”或“”等HTML标签,并且不严格的控制大小写。

元字符“+”表示1次或多次匹配紧接在其前的原子。例如:/go+gle/ 匹配“gogle”、“google”或“gooogle”等中间含有多个o的字符串。上文中提及的十六进制数字的例子,实际上更加完善的匹配表达式是/0?[ xX][0-9a-fA-F]+/,可以匹配“0x9B3C”或者“X800”等。

要准确地指定原子重复的次数,还可以使用元字符“{}”指定所匹配的原子出现的次数。“{m}”表示其前原子恰好出现m次;“{m,n}”表示其前原子至少出现m次,至多出现n次;“{m,}”表示其前原子出现不少于m次。

以下是一些示例。

/zo{1,3}m/只能匹配字符串“zom”、“zoom”、或“zooom”。

/zo{3}m/只能匹配字符串“zooom”

/zo{3,}m/ 可以匹配以 “z” 开头,“m”结束,中间至少为3个“o”的字符串。

/bo{0,1}u/可以匹配字符串“bought a butter” 中的“bou”和“bu”,起完全等价于/bo?u/。

php正则表达式重复出现的相同字母,php正则表达式匹配字符串的重复实例相关推荐

  1. php 正则提取连续字母,PHP匹配连续的数字或字母的正则表达式

    正则表达式的写法规则:"/规则需要写在2个斜杠中间/". (. :小数点)用于匹配除换行符之外的所有字符. (\s:反斜杠小写s)用于匹配单个空格符,包括tab键和换行符: (\S ...

  2. oracle正则表达式匹配字母,oracle正则表达式函数 匹配

    文章介绍了关于oracle正则函数的一些用法,包括匹配等,Oracle10g提供了在查询中使用正则表达的功能,它是通过各种支持正则表达式的函数在where子句中实现的. ORACLE中的支持正则表达式 ...

  3. 常用数字与字母的正则表达式(转载)

    验证数字的正则表达式集 验证数字:1$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9] ...

  4. 常用数字与字母的正则表达式

    验证数字的正则表达式集 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9 ...

  5. 组合学:使用10个数字与52个字母生成1477万个不重复的4位串码

    使用10个数字与52个字母生成1477万个不重复的4位串码(比如应用系统流水号应用场景),那么如何实现动态生成这类串码,并保证其不重复呢? 一.主要思想(进位思想): 将0-9-A-z,62个字符做为 ...

  6. 正则表达式:检测密码由6-21字母和数字组成

    正则表达式:检测密码由6-21字母和数字组成,不能是纯数字或纯英文:很多人一下子就想到了^[a-zA-Z0-9]{6,21}$,但是这个正则不能保证不能是纯数字或纯英文,所以这个正则不符合要求. 这个 ...

  7. C#正则表达式提取数字、小写字母

    一.数字 Regex.Replace(str, @"[^0-9]+", "") 二.小写字母 Regex.Replace(str, @"[^a-z]+ ...

  8. JS正则表达式只能输入数字跟字母

    JS正则表达式只能输入数字跟字母 ###最近需要些js控制一个输入验证,搞了好多文字,东凑西并终于汇总了.只要控制不给输入中文,空格,特殊字符就是 只能输入数字跟字母了,反过来实现 function ...

  9. 请帮我写正则表达式,只能输入英文字母

    好的,只能输入英文字母的正则表达式如下: ^[A-Za-z]+$ 这个正则表达式可以匹配一个或多个英文字母的字符串. 其中 ^ 表示开头,[A-Za-z] 表示英文字母(大小写不敏感),+ 表示前面的 ...

最新文章

  1. EXT3与EXT4的主要区别
  2. php怎么删除多条,php 用checkbox一次性删除多条记录的方法
  3. JAVA_OA(八):springMVC对JDBC的操作小项目a
  4. Git 几个重要操作指令对比
  5. github-markdown-css 使用简解,markdown文案格式优化(笔记)
  6. 团伙 并查集_BZOJ 1370 Baltic2003 Gang团伙 并查集
  7. JPEG算法 格式压缩方案
  8. c# workflow集成_将Google Wave与Windows Workflow集成
  9. Linux下载神器XDM,代替IDM
  10. Spring Boot启动之Hello World
  11. 是德科技34901A校准
  12. Java经典面试题汇总(五)网络编程
  13. 山东大学软件质量保证与测试技术复习纲要
  14. Swin Transformer v2实战:使用Swin Transformer v2实现图像分类(一)
  15. cmd远程连接上传下载文件
  16. 10月28日人工智能讲师叶梓为各工科院校老师进行了为期三天的人工智能培训
  17. 灰狼优化算法GWO优化SVM支持向量机惩罚参数c和核函数参数g,有例子
  18. [android] 手机卫士来电显示号码归属地
  19. 浅谈对美国主机进行空间设计的方法
  20. 超级详细的Python程序设计学习笔记,适合Python二级备考和自学Python的小白(me too)

热门文章

  1. 计算机学院的学生该怎样提高自己的编程能力?
  2. Android图片压缩(质量压缩和尺寸压缩)Bitmap转成字符串上传
  3. 网络斗地主游戏的完整设计与实现(二)系统的核心技术路线
  4. Symbian 手机资源
  5. 测试之巅?自动化测试
  6. 【jmeter】--- jmeter汉化方式
  7. 大学计算机培训策划书,江西财经大学国际学院首届计算机培训网络部策划书
  8. SQL难点对比分析:COUNT(IF) 和 SUM(IF)的区别
  9. android 卸载应用流程
  10. 采购如何询价?询价流程包括什么?