Один пример - это может быть не очень полезно на практике, но может дать вам представление о том, как его можно использовать (извините, синтаксис c #):
Match username = Regex.Match(input, @"^([\w\W]*?)(@[\w\W]+\.[\w\W])??$");
Теперь, что это будет делать, это то, что пользователь вводит свое имя пользователя или адрес электронной почты в форму ввода, и, если адрес электронной почты был введен, регулярное выражение захватывает только часть перед @
. Таким образом, можно использовать несколько типов ввода, и вы по-прежнему получаете одни и те же данные независимо от того, был ли введен @domain.com
или нет.
Отказ от ответственности: это , а не регулярное выражение, которое я бы использовал как есть для указанной цели - оно соответствует слишком многим адресам, не относящимся к электронной почте. Но эй, это демо ...;)