正则表达式 笔记
寻找教程的朋友请移步这里正则表达式30分钟入门教程。
特点:
- 学习曲线陡峭。
- 不同的正则表达式可以完成功能,但效率却差很多(NFA引擎)。
- 要在复杂性和完整性之间求得平衡,一个重要的因素是了解待搜索的文本。
引擎:
- DFA(确定型有穷自动机,符合或不符合POSIX标准的都属于此类)
- 传统型NFA(非确定型有穷自动机)
- POSIX NFA
引擎差别:
- NFA是“表达式主导”,DFA是“文本主导”
- 目标文本中的每一个字符在NFA中可能会被检查多次,但在DFA中最多只会被检查一次。
- 传统型NFA支持忽略优先量词(*?、+?、??、{num,num}?)
- DFA不支持捕获型括号(capturing parentheses)和回溯(backreference)