2017-01-26 2 views
1

Моя строка быть в форме:Regex найти последнее вхождение шаблона в строке

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

Я только хочу, чтобы соответствовать против последнего сегмента пробельных до последнего периода

Так (.) пока я в состоянии захватить пустое пространство, но не очень последнее появление с помощью:

\s+(?=\.\w) 

Как я могу сделать его менее жадный?

+1

Причудливый PCRE регулярное выражение: [ '^ (?> \ С * \ S +) * \ K \ s + (= \?.)'] (Https://regex101.com/r/k9VwC6/4) –

ответ

4

Вы можете попробовать так:

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

(?=\.[^.]+$) Положительных смотреть вперед для точки и символов, кроме точки в конце строки.

Демо:

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

0

Вы можете попробовать это. Он захватит последний сегмент белого пространства - в первой группе захвата.

(\s+)\.[^\.]*$ 
Смежные вопросы