2015-04-23 2 views
6

У меня есть два регулярных выражения, которые мне нужно объединить в один, поскольку я использую RegularExpressionAttribute в ASP.NET и не допускает нескольких экземпляров.Как я могу присоединить два регулярных выражения к одному?

Как я могу присоединить следующие два регулярных выражения к одному?

.*[email protected](?!.*?\.\.)[^@]+$ 
[\x00-\x7F] 

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

Я думал, что это могло бы быть столь же легко, как присоединиться к ним вместе, как (.*[email protected](?!.*?\.\.)[^@]+$)([\x00-\x7F]), но это не работает

Вот link к предыдущему сообщению, относящемуся к этой проблеме

EDIT: Я украшая строковое свойство моей модели просмотра, используя атрибут reglarexpression, и это становится визуализированным в javascript, используя ненавязчивый, поэтому он должен проверять использование javascript. Я не упомянул это в моем первоначальном посте

ответ

3

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

^[\x00-\x7F][email protected](?!.*?\.\.)(?=[\x01-\x7F]+$)[^@]+$ 
+0

Ваше регулярное выражение также будет соответствовать '444 @ ff @ ff.com'. –

+0

спасибо, что исправлено сейчас – anubhava

+0

Я помню, вы сказали, что «обходные дороги дороги», не так ли? :) –

3

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

^[\x00-\x7F-[@]]*[email protected](?!.*?\.\.)[\x00-\x7F-[@]]+$ 

Или, если вы хотите, чтобы соответствовать по крайней мере 1 символ перед @ :

^[\x00-\x7F][email protected](?!.*?\.\.)[\x00-\x7F-[@]]+$ 

Ум, который также включает в себя [\x00-\x7F]@ символическую архитектуру монументальной библиотеки л. В C# regex мы можем вычесть это из диапазона, используя -[@] внутри класса символов.

И я считаю, что вам не нужны якоря, поскольку вы используете это в RegularExpressionAttribute.

вот demo on regexstorm.net, уберите второй @, и у вас будет матч.

+0

потрясающий. работает отлично. Спасибо – kurasa

+1

на самом деле это не работает .. см. Эту ссылку https://regex101.com/r/kU4oV7/1 – kurasa

+0

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

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

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