在bash ungreedy正则表达式

问题描述:

选择哪些下列字符串匹配正则表达式在bash ungreedy正则表达式

(1 U 22)*2* 

a. 22112222112211 
b. 11112 
c. The empty string. 
d. 12121 
e. 1121111222 

我做了几个搜索,U表示“Ungreedy。使量词* +?{}仅消耗这些角色绝对必要的形成一个匹配,剩下的可用于模式的下一部分,当“U”选项不起作用时,可以用一个问号跟随它,使得单个的量词非贪婪;相反,当“U “实际上,问号使得个体量词贪婪。”https://www.cheatography.com/davechild/cheat-sheets/regular-expressions/

但我完全没有了解它,贪婪的正则表达式和非正则表达式意味着什么?你能展示我上面列出的例子吗?

+0

使用https://regex101.com/来可视化在调试模式发生 – rock321987

+1

贪婪匹配最长匹配的字符串。不符合最短匹配。 – 123

+0

@ rock321987不,这不是重复的问题,我只想知道的是如何在正则表达式中使用选项'U'并理解什么是不真实的 – linux

贪婪意味着它会尝试找到最长的匹配字符串。

对于以下字符串:

{ this} is a { test} } 

贪婪正则表达式的实施例

\{.*\}

此正则表达式将以下文本中的整个匹配:

{此}是一个{test}}

非贪婪

\{.*\}

将只匹配 { this}

+0

'?':'\ {。*?\}'? – heemayl