正则问题

王子文龙 2012-10-29 02:47:57
((?=aaa)a)+
代表的什么意思
大神帮忙翻译一遍
最好讲得细一点
为什么是重复4次以上的a,则匹配其剩下最后2位之前的部分
越看正则越迷糊
...全文
111 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐乔巴 2012-10-29
  • 打赏
  • 举报
回复
更正下 红a少了个
aaaaa 是前面3个 后面2个没有匹配
快乐乔巴 2012-10-29
  • 打赏
  • 举报
回复
((?=aaa)a)+
首先(?=aaa) (?=子表达式)这个叫顺序环视 也就是尝试当前位置右边的子表达式 是的只是尝试或者说预判 并没有匹配任何字符 只有尝试成功了才会匹配
那么分析下(?=aaa)a (?=aaa)是出现在a的左边的 所以就是a这个左边的位置的右边必须满aaa才能匹配

比如aabaaaaa 我用b将a分开来比较 很明显b前面的aa不满足 所以不匹配 但是后面的aaaaa满足了几个呢?
aaaaa 是前面3个 后面2个没有匹配
为什么 还不明白我们一步一步走
前面2个a
1.第一个a 这个a的左边的位置(因为(?=子表达式)在a的左边)的后面是否满足3个连续的a呢 明显没有 只有2个 其中还包括自己 对不 第二个a么当然更不是了
后面5个a
1.第一个a 这个a的左边的位置(因为(?=子表达式)在a的左边)的后面是否满足3个连续的a呢 满足的 aaaaa 那就匹配这个第一个a
2.第二个a(重复以上分析) 满足aaaaa 就匹配这个第二个a
3....
4.第四个就好比b前面2个a的第一个a 对不 不能满足 因为第四个开始到后面只有2个aa了 对不 所以不匹配这个a
5.和上面一样 也不匹配

所以....
哎 不知道说明白了没有...
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
((?=aaa)这玩意不是以它结束,但不包括它吗
[/Quote]
三个a也可以通过
Regex.IsMatch("aaa","((?=aaa)a)+")是true
王子文龙 2012-10-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
引用楼主 的回复:
((?=aaa)a)+
代表的什么意思
大神帮忙翻译一遍
最好讲得细一点
为什么是重复4次以上的a,则匹配其剩下最后2位之前的部分
越看正则越迷糊

((?=aaa)a)+
aaa后面跟a,+号代表至少出现一次

和这个有什么区别?
a{4,}
[/Quote]
((?=aaa)这玩意不是以它结束,但不包括它吗
EnForGrass 2012-10-29
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
((?=aaa)a)+
代表的什么意思
大神帮忙翻译一遍
最好讲得细一点
为什么是重复4次以上的a,则匹配其剩下最后2位之前的部分
越看正则越迷糊
[/Quote]
((?=aaa)a)+
aaa后面跟a,+号代表至少出现一次

和这个有什么区别?
a{4,}
  • 打赏
  • 举报
回复
感觉和
[a]{3,}
一样
bdmh 2012-10-29
  • 打赏
  • 举报
回复
找到a并且,a的前面是aaa
课程目标:学习Java语言中字符串相关的知识、字符编码常识和正则表达式的使用,并完成案例前导课程:《Java工程师必学系列课程》前4部课程内容:本课程是《Java工程师必学系列课程》的第5部分,主要讲解Java语言中字符串相关知识、字符编码常识和正则表达式的使用。本课程涉及的主要内容可以分为四部分:一、String、StringBuffer和StringBuilder类基本常识、基本原理和使用技巧二、字符编码常识三、Java语言正则表达式的详细语法和使用技巧四、实战案例课程说明:在开发Java程序的过程中,最常用的类莫过于字符串相关的类。可以毫不夸张的说,任何一个Java程序,都离不开对字符串保存和处理。很多学员对字符串的理解只是处于比较粗浅的阶段。殊不知,如果对字符串处理的不好,会影响到软件的运行效率。本课程专门讲解字符串相关的知识,将从字符串的存储方式、底层的运行方式等各方面深入讲解其中的原理和技巧。此外,对字符串进行更高级的处理,又要用到正则表达式的相关知识。正则表达式广泛应用于各种与字符串处理相关的场合。它是一套独立的语言系统,经过几十年的完善和发展,现在已经非常的强大,并且形成了国际标准。各种高级编程语言,都实现了自己的表达式引擎。本课程详细的讲解了Java语言中正则表达式的语法和使用技巧。掌握了正则表达式,对编程水平的提高有非常大的帮助!同时,本课程在最后一部分,安排了非常精彩的、完整的实战案例,通过实战的形式切实帮助学员提高解决具体问题的能力!预期效果:认真学习完本课程,学员可以掌握字符串处理及正则表达式相关的系统知识,并能提高实际的编码水平。环境配置要求:学习本课程需安装JDK1.8或更高版本的JDK,以便程序能正确运行,建议使用IntelliJ IDEA 2019.1.2或更高版本的开发工具。    因有合作协议约束,《穆哥学堂》只提供PDF版本的课件!

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧