2016-04-27 26 views
0

選擇哪些下列字符串匹配正則表達式在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

回答

-1

貪婪意味着它會嘗試找到最長的匹配字符串。

對於以下字符串:

{ this} is a { test} } 

貪婪正則表達式的實施例

\{.*\}

此正則表達式將以下文本中的整個匹配:

{此}是一個{test}}

非貪婪

\{.*\}

將只匹配 { this}

+0

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