正则表达式问题求解,谢谢

请各位大大解释一个这个表的式,^(?=.*你)(?!.*(?<![个的])请(?!.{0,5}[来去])).*(?<!\d)\d{2,3}(?!\d)[C次].*(哥哥|姐姐) 因为我是新手,请尽量详细点,万分感激!

这个正则可以匹配"今天你们有110次机会叫我哥哥"之类的字符串.基本用到的语法如下:
1.\d 匹配一个数字;等价于[0-9]
2.{2,3} 表示至少出现2次,至多出现3次(3>=2)
3.(哥哥|姐姐) 可以匹配"哥哥",或者匹配"姐姐",一定要匹配其中一个
4.[来去] 可以匹配[ ]中的任意一个字符
以下是正则表达式高级模式的用法:
5.(?=.*你) 括号中的模式<.*你>必须出现在声明的右侧
6.(?!bbb) 括号中的模式<bbb>不能出现在声明的右侧,如:可匹配'aaaddd',却不能匹配'aaabbb'
7.(?<=) 括号中的模式必须出现在声明的左侧
8.(?<!) 括号中的模式不能出现在声明的左侧
重复的用法楼主可自己琢磨下

这个正则是没事找事用来折磨人的!我觉得这是滥用正则高级模式却不办正事.(除非这个正则的目的就是把所有的语法都扔上来方便记忆,那我没话说)

建议这位兄弟作为新手不该直接看这么复杂的正则,你应该从正则的基本语法和常用实例开始,
如:匹配电话号码(0888)88911818-002,匹配简单邮箱等,要明白一点:一个复杂的正则也必须是由简单的正则语法拼凑而成的!所以基本功学好了,你就变强了.

可以考虑用
RegexBuddy, Regex Match Tracer 这种专业的工具作辅助,相信你可以学得非常快!
温馨提示:答案为网友推荐,仅供参考
相似回答