2013-12-03 4 views
0

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

Я хочу, чтобы захватить все символы, которые следуют в -, а затем числовой характер.

Так, например, если строка была python-proj-5.0 Я хотел бы получить python-proj.

Я пробовал [^-0-9]*, но кажется, что соответствует только - или числовым символам, но не -, которому предшествуют числовые символы.

ответ

2

Шаблон, как это должно работать:

(.*)-[\d.]+ 

Это будет означать любую последовательность из нуля или более символов, захваченных в группе 1, за которым следует дефис, то одна или более цифр или символов ..

Или используя предпросмотр:

.*(?=-[\d.]+) 

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

+0

Первый, похоже, не работает так, как хотелось бы, но второй работает отлично. Спасибо! – n00b

+0

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

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