Regex - извлекать только цифры - если не встречается "..." - PullRequest
1 голос
/ 22 ноября 2011

Рассмотрим строку переменной длины, начинающуюся с переменного числа цифр, затем не цифра, затем что-нибудь еще.

Eg. 283432478($#*a433sd

(игнорируйте окраску SO)

Здесь я хотел быизвлечь цифру часть 283432478.Ничего страшного.

Однако иногда эта строка очень велика, и часть посередине вручную и случайно заменена на ...

Eg. 23445678404325jkla#$s23k$#$     =>     2344567840...3k$#$

Под случайным образом я имею в виду, что это может произойти где угодновнутри строки, и при этом это не приводит к строке фиксированной длины.

Я хотел бы, чтобы то же регулярное выражение не соответствовало, если оно видит ....

Есть предложения?

1 Ответ

4 голосов
/ 22 ноября 2011

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

^([0-9]+)(?!.*\.\.\.)

Посмотреть

^            - Start anchor
([0-9]+)     - Capture one more digits
(?!.*\.\.\.) - Negative lookahead to ensure a ... is not present. Since . is a 
               regex meta-char, you need to escape it to mean a literal period.
...