2016-07-14 3 views
-1

Wie Ende der Zeile/Wort übereinstimmen oder nicht eine ZifferPreg Spiel Wortende/Zeile oder keine Ziffer

Muster

/\d{3}[\b\D]/ 

Spiel

123 
123- 
123 1abc 
123a 

keine Übereinstimmung

1234 
+0

' "/ \ d {3} \ w + /"'? – Andreas

+0

'\ w' stimmen mit Alpha, Ziffer, Unterstrich usw. überein. – clarkk

+0

Warum ist Ihr letztes Beispiel nicht passend? Es hat 3 Ziffern "234", gefolgt vom Zeilenende. – Barmar

Antwort

1

Wenn Sie genau drei Ziffern erhalten möchten, die nicht von anderen Ziffern umgeben sind, verwenden Sie negative Lookarounds.

/(?<!\d)\d{3}(?!\d)/ 
^  ^
lookbehind lookahead 

Lookarounds werden unter regular-expression.info erklärt.

DEMO

+0

können Sie erklären, was der Unterschied zwischen '? clarkk

+0

Einer ist ein Lookbehind, der andere ist ein Lookahead. – Barmar

+0

ok .. so wird zuerst '\ d {3}' und dann hinten (am Anfang des Musters) gesucht? – clarkk

1

Sie können Wortgrenze am Anfang und ein nega verwenden Vorgriffs-regex nach 3 Ziffern tive:

\b\d{3}(?!\d) 

RegEx Demo

(?!\d) null Breite Behauptung, auch einer Wortgrenze oder das Ende der Leitung oder irgendeine andere nicht-Ziffer nach 3 Stellen ermöglicht.