2017-01-06 6 views
-2

Wie finde ich den Text zwischen dem ersten D: entweder am Anfang oder vor einem Leerzeichen und dem nächsten Leerzeichen oder dem Ende der Zeile?Alternative Übereinstimmungen in regulären Ausdrücken

Text          Result 
-------------------------------------------------- 
D:10mm         10mm 
D:3/4"         3/4" 
one two three D:12.34mm one two three 12.34mm 
one two three D:3/4" one two three  3/4" 
WordWithD:inside D:123 WordWithD:inside 123 

*D:(.+?) funktioniert nur, wenn der Text sowohl voraus ist und durch einen Raum gelungen, aber ich war nicht in der Lage zu erstellen, die vor allem der Fälle auf dem Tisch verwaltet.

Ich interessiere mich sowohl für die Antwort auf diese spezifische Frage und auf die generische Art, zwei (oder mehr) alternative Muster zu finden. In diesem Fall möchte ich entweder das nächste Leerzeichen oder das nächste Zeilenende abgleichen, aber ich möchte entweder abc oder def zuordnen.

+0

Vielleicht ['(?

+0

'D: (\ d \ S *)' [Demo] (https://www.regex101.com/r/qAYwKB/2) – dawg

+0

@stenci: Wenn das Feedback für meinen Kommentar ist, verstehe ich es nicht. Was sind erwartete Spiele? –

Antwort

0

Wie wäre:

\bD:(.+) 

wo \b eine Wortgrenze ist, dass es annimmt, ist kein anderes Wort Zeichen vor D

Verwandte Themen