2015-07-15 5 views
1

У меня есть это регулярное выражение in[^\s]. Он фиксирует любую последовательность из трех символов, которая имеет «внутри» и любой символ, но пространство.regex. Как вернуть меньший результат

Результаты для тестов:

integer  -> int 
inline  -> inl 
instruction -> ins 
in   -> "nothing" 

Теперь то, что я хочу, что это регулярное выражение будет считать, что третий символ не пустое пространство, но не отметит третий символ

Я хочу его работать так:

integer  -> in 
inline  -> in 
instruction -> in 
in   -> "nothing" 

ответ

1

Вы можете использовать положительный предпросмотр для этого:

in(?=\S) 

(?=\S) является положительным взглядом, который гарантирует, что in следует за не-пространством.

\S такой же, как [^\s].

Также лучше использовать границу слова, чтобы избежать согласования in в середине слова:

\bin(?=\S) 

RegEx Demo

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