2011-01-28 8 views
0

Я использую Java регулярных выражений, чтобы соответствовать и захватить строку, такие как:Java регулярное выражение: сопрягать ввод, начиная с не-номер или пустая строка, затем определенному шаблону

0::10000

Раствор будет:

(0::\d{1,8})

Однако матч будет успешным для ввода

10::10000

как есть, это неправильно. Таким образом, теперь у меня есть:

[^\d](0::\d{1,8})

, что означает, что должно привести с любым символом, кроме числа, но это означает, что там должно быть некоторые характера до первого нуля. То, что я действительно хочу (и мне нужна помощь), заключается в том, чтобы сказать «вести с не числом или вообще ничего».

В заключении окончательного решения регулярное выражение должно соответствовать следующему:

0::10000
kjkj0::10000

и не должны матча следующее:

10::10000

This site может быть использована если кто-то хочет помочь.

Спасибо.

ответ

4

Вы должны отрицательно: 'назад

(?<!\d)(0::\d{1,8}) 

Это означает, что "матч 0::\d{1,8} не предшествует \d".

+0

выдающийся .... спасибо за немедленный ответ. – david

+1

+1 интересный синтаксис –