精通正则表达式八:多选结构是匹配优先还是忽略优先
来源:互联网 发布:软件开发java 编辑:程序博客网 时间:2024/06/05 14:39
记得在前面测试引擎的类型的时候用正则表达式‘nfa|nfa not’来匹配文本‘nfa not’,因为DFA和POSIX NFA不支持忽略优先量词,所以如果匹配到的是‘nfa’,则是NFA:
对于NFA而言,会逐个按顺序尝试多选结构的分支,哪个先匹配到返回的就是哪个:
对于DFA而言,却总是返回匹配长度最长的文本:
test.txt中的文本是‘nfa not’,其实这也跟它的文本主导的特性有关。
有序多选结构的陷阱
如果需要匹配‘Jan 31’之类的文本,可能需要这样:
Jan (0?[1-9]|[12][0-9]|3[01])
但这样会带来一个问题:
这是就需要调整分支的位置:
Jan ([12][0-9]|3[01]|0?[1-9])
阅读全文
0 0
- 精通正则表达式八:多选结构是匹配优先还是忽略优先
- 精通正则表达式六:匹配优先与忽略优先
- 读《精通正则表达式》:标准量词是匹配优先的
- 读《精通正则表达式》:优先选择最左端的匹配结果
- 精通正则表达式七:占有优先量词和固化分组
- matlab中的矩阵是行优先还是列优先?
- java正则表达式忽略大小写匹配
- 正则表达式匹配被忽略的异常
- 深度优先还是广度优先
- 正则表达式学习(八)位置匹配
- 过程改进:宽度优先还是深度优先?
- 过程改进:宽度优先还是深度优先?
- 创业,体验优先还是效率优先?
- 正则表达式占有优先量词以及固化分组的使用
- android 正则表达式 匹配是否是手机号
- 结构体优先队列
- 结构体优先队列自定义优先度
- 八数码宽度优先算法
- js实现通过canvas截图保存到本地
- spring mvc 响应中文乱码问题的解决
- 证书相关后缀文件
- 语言设置
- Django(六)--用户管理Admin
- 精通正则表达式八:多选结构是匹配优先还是忽略优先
- java使用System.arraycopy对数组扩容
- CL_EXITHANDLER查找BADI增强的过程
- TCP/IP的开肠破肚(5)
- Excel潜能系列——Excel游戏(2v2战斗~5v5战斗模拟器)【更新V1.5】 Einsphoton
- Android invalid drawable tag vector错误的解决办法
- NYOJ 31
- Javascript--位运算符
- 【Algorithm】 Building Collapse