?:pattern ?=pattern ?!pattern 的理解
来源:互联网 发布:淘宝打不开怎么办 编辑:程序博客网 时间:2024/04/26 17:47
首先给一个官方解释吧:
(pattern) 匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0…$9 属性。要匹配圆括号字符,请使用 ‘′或‘’。 (?:pattern) 匹 配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 “或” 字符 (|) 来组合一个模式的各个部分是很有用。例如, ‘industr(?:y|ies) 就是一个比 ‘industry|industries’ 更简略的表达式。 (?=pattern) 正 向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,‘Windows (?=95|98|NT|2000)’ 能匹配 “Windows 2000〃 中的 “Windows” ,但不能匹配 “Windows 3.1〃 中的 “Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 (?!pattern) 负 向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如‘Windows (?!95|98|NT|2000)’ 能匹配 “Windows 3.1〃 中的 “Windows”,但不能匹配 “Windows 2000〃 中的 “Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始 在PERL的模式中,括号内的子模式将存贮在内存中,此功能即取消存贮该括号内的匹配内容,如/(?:a|b|c)(d|e)f\1/中的\1表示已匹配的d或e,而不是a或b或c
不用看了,我知道你看不懂,看的懂就不来查了。我就给三张图,看看能不能理解吧,已经是我觉得最好理解的了,文字我都打不出这么好理解的:
?:pattern
?=pattern
?!pattern
ok,正则表达式这东西,还是直接测试理解的快哈
阅读全文
0 0
- ?:pattern ?=pattern ?!pattern 的理解
- (?:pattern) (?=pattern) (?!pattern)
- pattern
- pattern
- Pattern
- Pattern
- Pattern
- Pattern
- Pattern
- 正则表达式之?、(?:pattern)、(?!pattern)、(?=pattern)理解及应用
- 理解Design Pattern
- 正则表达式之 pattern+?、pattern*?、(?!pattern)、(?:pattern)
- <url-pattern>/</url-pattern>和<url-pattern>/*</url-pattern>区别 <url-pattern>/</url-pattern>表示的为只匹配/lo
- builer pattern 与 factory pattern 的区别
- Singleton Pattern 和 Factory Pattern 的学习
- 正则表达式之(?=pattern)(!=pattern)
- Pattern p = Pattern.compile(regex);
- Iterator Pattern & Composite Pattern
- 设计模式的艺术之道--简单工厂模式
- 草根seo解释反向链接是什么意思?
- java实现httpclient发送post请求
- Mac/MacBookPro解决运行卡顿问题(非配置问题)
- 消除类游戏
- ?:pattern ?=pattern ?!pattern 的理解
- 三大查询
- 利用array判断列表有图片调图片,没图片留空
- java swing实现喜羊羊与灰太狼推箱子游戏
- WebSocketHandler.ashx代码
- 汇编中retn 4的含义详析
- 生产环境drbd+heartbeat+mysql(mysql一主多从)部署安装
- KNN python code
- python Web 之基石