2017-01-26 3 views
1

Mein String der Form zu finden sein:Regex letzte Vorkommen des Musters in einem String

"as.asd.sd fdsfs. dfsd d.sdfsd. sdfsdf sd .COM" 

Ich will nur gegen das letzte Segment von Leerzeichen entsprechen, bevor die letzten Periode

So (.) weit bin ich in der Lage Leerzeichen zu erfassen aber nicht die sehr letzten Vorkommen mit:

\s+(?=\.\w) 

Wie kann ich es weniger gierig machen?

+1

Ein extravaganter PCRE regex: [ '^ (?> \ S * \ S +) * \ K \ s + (= \?.)'] (Https://regex101.com/r/k9VwC6/4) –

Antwort

4

Sie mögen so versuchen:

(\s+)(?=\.[^.]+$) 

(?=\.[^.]+$) Positive für einen Punkt nach vorne schauen und Zeichen außer dem Punkt am Ende der Linie.

Demo:

https://regex101.com/r/k9VwC6/3

0

Sie können dies versuchen. Es wird das letzte Leerraumsegment erfassen - in der ersten Erfassungsgruppe.

(\s+)\.[^\.]*$ 
Verwandte Themen