2015-06-26 3 views
1

У меня есть следующая строка:Как получить номер строки из

adsfsd gj3h34 sdfsdfs dfs fds 24 d[4sfsdfsd sdfwe32 [3 

Не могли бы вы сказать мне, как получить только 24 используя регулярное выражение из этой строки? Я понятия не имею ...

Другие примеры:

Строка:

asd3 [32/ 3vsry4 1 svsdv 

Ожидаемый результат:

1 

Строка:

trolololol '3211= la4so25lr 978 cxz 

Ожидаемый результат:

978 
+0

В номере всегда есть пробелы? Или это может быть в начале или конце строки? – Barmar

ответ

1

Я понимаю, что вы ищете ряд цифр \d+ между пространствами (\s).

Вы можете написать: \s\d+\s, но он захватит пробелы и не будет работать, если число находится в самом начале или конце строки.

Вы также можете написать \b\d+\b использовать граничное слово утверждение (\b), но это не будет работать, либо потому, что некоторые символы не считаются частью слова (вы бы соответствовать 3 в [3, например).

Лучший подход:

(?<!\S)\d+(?!\S) 

Demo

  • (?<!\S) означает не предшествует некосмическими
  • (?!\S) означает не следует некосмическими

\Sозначает символ, который не пробельные, (?<! ... ) и (?! ... ) являются отрицательные lookarounds.

Оба эти условия удовлетворяются в начале и конце строк.

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