2014-10-16 6 views
1

Я новичок в этой регулярной концепции. Я пытаюсь использовать эту REG эксЧто такое специальный символ/escape для «пробела» в регулярном выражении POSIX?

[^@\s]+$ 

Если я дать строку как «абс», его actulally исключая символ «s». что означает, что «\ s» читается как символ, а не пробел. Пожалуйста, помогите мне решить эту проблему

+0

Проверьте правильность моего редактирования. Я не знаю, является ли '.' частью вашего регулярного выражения, но я думаю, что это не так, поэтому я удалил его. – nhahtdh

+0

спасибо. '' не был частью этого. – user3913114

ответ

1

Вы можете использовать POSIX эквивалент:

^[^@[:space:]]+$ 

[:space:] соответствует любой пробел включая символ новой строки. Если вы хотите избежать совпадения строк, используйте вместо этого: [:blank:].

+1

большое спасибо. теперь мой код работает нормально. спасибо большое – user3913114

+0

Добро пожаловать, рад, что это сработало. – anubhava

+0

Привет, Анубхава. поддерживает ли POSIX регулярное выражение Unicode? – user3913114

2

Пространства класс символов в POSIX является [:space:], так что в вашем случае, ваше регулярное выражение будет:

[^@[:space:]]+$ 

Обратите внимание, что [:space:] не может автономную вне [] как \d или \s в других ароматизаторах. Класс космического персонажа должен быть внутри []:

[[:space:]] 
+0

Благодарим вас за более подробную информацию – user3913114

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

  • Нет связанных вопросов^_^