2015-08-05 6 views
-1

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

Скажем, к примеру, мы имеем следующую строку: «Фотографии Фото»

Я хочу написать регулярное выражение, которое возвращает «Фото» часть строки, но не возвращает «Фотографии» часть, потому что в нем есть «s». Как мне написать это регулярное выражение?

+4

'Фото (?! S)' или 'Фото \ b' –

+2

Для полного ответа, вам может потребоваться предоставить более полный пример. – dan08

+1

1) Можете ли вы предоставить больше примеров входов и ожидаемых результатов, и 2) что вы пробовали? –

ответ

3

Существует множество способов написать такой regexp, вы должны уточнить условия, чтобы получить лучший.

Предполагая, что вы должны соответствовать Photo только тогда, когда это полное слово, а не часть более длинного слова, выражение:

/\bPhoto\b/ 

В \b части специальных regexp конструкции, которые соответствуют словоразделам т.е. переход между символом слова (буквы, цифры, подчеркивание) и символом без слов (что-либо еще).

Передние косые черты (/) не входят в состав regexp, они являются разделителями. Некоторые инструменты и языки требуют их, редакторы и IDE обычно им не нужны, некоторые инструменты позволяют пользователю выбирать разделитель (из не очень большого списка).

0

Если вы хотите, чтобы захватить слово, которое не имеет втор в нем использовать этот ...

([A-Ra-r]|[T-Zt-z])+\s 
Смежные вопросы