2016-04-27 20 views
0

wählen, welche der folgenden Strings entsprechen regulären AusdruckReguläre Ausdrücke ungreedy in bash

(1 U 22)*2* 

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

ich ein paar Suche tat, bedeutet U "Ungreedy. Macht die quantifiers * +? {} Verbrauchen nur diese Zeichen unbedingt notwendig bildet ein Spiel, die übrigen für den nächsten Teil des Musters zu verlassen. wenn die „U“ Option nicht in Kraft ist, kann eine individuelle quantifier indem sie sie mit einem Fragezeichen wie folgt zusammen nicht gierige werden. wenn umgekehrt „U „in der Tat ist, macht das Fragezeichen eine individuelle quantifier gierig.“ https://www.cheatography.com/davechild/cheat-sheets/regular-expressions/

aber ich absolut nicht verstehe es, was bedeutet gieriger regulärer Ausdruck und ungegenständlicher regulärer Ausdruck? und kannst du das Beispiel zeigen, das ich oben aufgeführt habe?

+0

Verwendung https://regex101.com/ zu visualisieren entsprechen, was in Debugger-Modus – rock321987

+1

Greedy Matches die längste passende String geschieht. Unfreedy entspricht dem Kürzesten. – 123

+0

@ rock321987 nicht die Frage nicht dupliziert ist, alles, was ich wissen will, ist, wie Sie die Option verwenden 'U' hier mit regulären Ausdrücken und verstehen, was ungreedy ist – linux

Antwort

-1

Greedy bedeutet, dass es versucht, den längsten passenden String zu finden.

Für die folgende Zeichenfolge:

{ this} is a { test} } 

Beispiel einer Greedy regex

\{.*\}

Diese Regex würde folgende Text des gesamten Spiels:

{} Dies ist ein {Test}}

Non Greedy

\{.*\}

würde nur { this}

+0

Wo ist '?': '\ {. *? \}'? – heemayl