grep贪婪与非贪婪
时间: 2023-10-01 16:02:21 浏览: 42
grep中的贪婪与非贪婪模式是用来影响被量词修饰的子表达式的匹配行为的。贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配。
在grep中,要使用贪婪模式,可以使用量词符号,如*、+和?,以及花括号{}来表示重复次数。例如,使用*表示零次或多次重复,使用+表示一次或多次重复,使用?表示零次或一次重复。
而要使用非贪婪模式,可以在量词符号后面加上一个问号?。这样就会使得匹配尽可能少的重复次数。
需要注意的是,非贪婪模式只被部分NFA引擎所支持。在grep中,使用非贪婪模式需要使用-P选项,并使用(?:…)来表示非捕获版本的分组,这样的分组不会被引用。
所以,如果你想要尽可能多的重复,可以使用贪婪模式,如果你想要尽可能少的重复,可以使用非贪婪模式。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [最详解的正则表达式------贪婪和非贪婪、转义符、分组](https://blog.csdn.net/m0_63615831/article/details/128088942)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]