2014-09-30 3 views
0

До сих пор у меня есть следующие:Как я могу получить последнее слово после специального символа?

\- (.*) 

И из следующего текста:

September 2014 - Media 

мне нужно, чтобы получить "Медиа", Тхо я получаю "- СМИ"

+3

Лучше также пометить его с "Javascript", если ищете JS regex, поскольку существует большая разница между специфическими ароматизаторами регулярных выражений. –

+0

Правда, я просто новый в этом, и я не знал – Monica

ответ

2

Ваш regex правильно, просто напечатайте индекс группы 1 вместо группы 0, и вам не нужно выходить из -.

DEMO

См захваченное строку Media на правой стороне в приведенной выше ссылке демо.

ИЛИ

Используйте ниже регулярное выражение, чтобы соответствовать только Media,

- \K.* 

DEMO

Вы можете использовать 'назад, если ваш язык не поддерживает \K,

(?<=-).* 

DEMO

> "September 2014 - Media".match(/[^- ]+$/g) 
[ 'Media' ] 
> var r = "September 2014 - Media"; 
undefined 
> console.log(/- (.*)/.exec(r)[1]) 
Media 
+0

Почему здесь не работает? http://www.regexr.com/ – Monica

+0

@Monica, на каком языке вы работаете? http://www.regexr.com/ предназначен только для поддержки javascript. '\ K', lookbehind не будут поддерживаться в js. –

+0

Javascript. Я думаю, что этот язык не поддерживает его – Monica

2

Если ваш язык позволяет назад ', попробуйте:

(?<=-)(.*) 

если не просто использовать:

([^-]*)$ 
+0

Я использую Javascript – Monica

+0

Тогда вы можете использовать альтернативное решение. А также добавьте тег 'javascript' к вопросу. – blackSmith

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