2014-11-19 3 views
0

Учитывая, за исключением следующих string:Match каждое слово, за исключением указанных

Some Name Season 1

Я пытаюсь соответствовать:

Some Name (в идеале в 1 захвата группы)

та часть Я попытка совпадения может не обязательно быть двумя словами И может произойти до или после Season X, где X - это номер.

Examples:

Some Name A B Season 23 возвращает Some Name A B

Season 23 Some Name A B C D возвращает Some Name A B C D

В настоящее время у меня есть:

(?!Season\s*\d+)\b\w+ 

Спасибо за вашу помощь.

+0

Что именно вы пытаетесь сделать? – hwnd

+0

@hwnd Я добавил более подробные сведения в вопрос. –

+0

На каком языке вы используете? – hwnd

ответ

3

В зависимости от используемого вами языка вы можете использовать функцию branch reset.

(?|Season \d+ (.*)|(.*) Season \d+) 

Live Demo

+0

Спасибо большое! Также не знал об этом операторе. Это действительно пригодится в другой части моего кода, где я вручную тестировал каждый матч :) –

+0

Это было информативно :) – vks

0

Ниже будет работать с вашими данными выборки:

(.+)Season\s?\d+|Season\s\d+(.+) 

Это объясняет Season наступающем до и после, и Some Name захватывается в $1.

Надеюсь, он будет работать для ваших нужд :)

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