2016-04-04 13 views
-1

Ich erwartete, dass eine Zeichenfolge entweder "abc", "adc" oder "ac" ist. Wie sagt man das im regulären Ausdruck?Regulärer Ausdruck: Entspricht einigen Zeichen oder keinem Zeichen

+0

Was scheint ein Problem zu sein? –

+0

Verwenden Sie den '|' Operator, um Alternativen anzugeben: http://www.regular-expressions.info/alternation.html – Barmar

+0

Sie müssen etwas Code hinzufügen, der uns zeigt, was Sie versucht haben. – Greg

Antwort

1

Sie könnten nutzen die | (OR) Operator wie folgt:

abc|adc|ac 

Es ist äquivalent zu der Aussage Wählen Sie abc oder adc oder ac

Sie Tools wie RegExr oder Regex101 verwenden können, testen Ihre RegEx

Live Demo on Regex101


Es gibt auch eine clevere, es zu tun, das ist kürzer. Da alle 3 Strings mit a beginnen, ist der erste Teil der RegEx a. Sie enden alle in einem c, so dass der letzte Teil ein c sein wird.

Jetzt ist der mittlere Buchstabe entweder b oder d. Sie könnten (b|d) verwenden, oder Sie können die kürzere [bd] (es bedeutet das gleiche) verwenden. Sie können ? verwenden, um anzugeben, dass der mittlere Buchstabe optional ist.

So Ihre volle RegEx wird:

a[bd]?c 

Live Demo on Regex101

+0

a [bd]? C ist die hilfreiche Antwort. Ich weiß eigentlich nicht, was "a" und "c" sein werden, aber ich weiß, was sie trennen wird. Und Live-Demo ist auch Bonuspunkt. Vielen Dank. – mattsun

1

Sie können die einfache Art und Weise tun:

abc|adc|ac 

oder mehr 'Erweitert' Art und Weise:

a[bd]?c 

Beide arbeiten sollte.

Verwandte Themen