2015-11-22 3 views
-1

Как я могу выбрать номер, который следует любому символу, кроме пространстваКак выбрать номер, которые следуют любому символу, кроме пробела

word23 
#3 
*9 
@user82 

Но не выбирайте это

123 
+0

Любые пробелы или фактическое ** пространство **? – hwnd

+0

@hwnd Я ошибился и отредактировал вопрос – Jauzee

ответ

1

Выражения с негативным взглядом-за(?<!a)b совпадений "b не ранее a", поэтому в вашем случае это будет

(?<![\s\d])\d+ 

\d+ означает «последовательность из одной или нескольких десятичных цифр». [\s\d] означает «пробел или цифра», которая включает в себя пробелы, вкладки и т.д.

Demo.

1

Вы не указали, какой язык/двигатель вы используете, так что вместо того, чтобы использовать lookaround утверждение, я использовал групповая конструкция для моделирования поведения фактического обратного пути.

(?:^|[^\s\d])(\d+) 

Demo

+0

Спасибо, но этот RE выбирает один символ перед номером. Мне нужен только номер, а RE во втором ответе делает именно то, что мне нужно. – Jauzee

+1

Да, предыдущий символ не является проблемой, потому что результат вашего матча сохраняется в группе захвата '# 1' – hwnd

+0

Как я могу получить этот сохраненный результат? – Jauzee

Смежные вопросы