Регулярные выражения - PullRequest
       3

Регулярные выражения

10 голосов
/ 05 марта 2010

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

Например, допустим, я хочу проверить строку, содержащую хотя бы один символ, чтобы убедиться, что она содержит "@" не более 2 раз. Заранее спасибо. Использование python, если это имеет значение.

Ответы [ 3 ]

5 голосов
/ 05 марта 2010

Есть много способов сделать это, например:

/^(?=([^@]*@){,2}[^@]*$)./
0 голосов
/ 05 марта 2010

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

^(?=(([^@]*@){0,2}[^@]*$))

Edit: Марк исправил свой ответ, наш теперь должен быть таким же. Также исправлено.

0 голосов
/ 05 марта 2010

Используя отрицательное утверждение, вы можете убедиться, что @ не встречается три раза:

(?!.*@.*@.*@.*).*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...