在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/
但我完全没有了解它,贪婪的正则表达式和非正则表达式意味着什么?你能展示我上面列出的例子吗?
答
贪婪意味着它会尝试找到最长的匹配字符串。
对于以下字符串:
{ this} is a { test} }
贪婪正则表达式的实施例
\{.*\}
此正则表达式将以下文本中的整个匹配:
{此}是一个{test}}
非贪婪
\{.*\}
将只匹配 { this}
+0
'?':'\ {。*?\}'? – heemayl
使用https://regex101.com/来可视化在调试模式发生 – rock321987
贪婪匹配最长匹配的字符串。不符合最短匹配。 – 123
@ rock321987不,这不是重复的问题,我只想知道的是如何在正则表达式中使用选项'U'并理解什么是不真实的 – linux