Regex从电子邮件地址中选择别名



我需要识别给定单元格中的所有电子邮件地址,这些地址用任何特殊字符括起来,用任意数量的多行书写。

这是我建造的东西。

"(!s<,;-)[a-zA-Z0-9]*@"

有什么改进吗?

模式(!s<,;-)[a-zA-Z0-9]*@从捕获!s<,;-开始。如果要匹配列出的字符中的一个,则可以使用字符类[!s<,;-]

如果要在中匹配xyz123xyz123@gmail.com您可以使用:

[a-zA-Z0-9]+(?=@)

图案与匹配

  • [a-zA-Z0-9]+匹配任何列出范围的1+次
  • (?=@)直接在当前位置右侧断言(不匹配(@

查看regex演示。

使用

([a-zA-Z0-9]w*)@

查看正则表达式验证

解释

--------------------------------------------------------------------------------
(                        group and capture to 1:
--------------------------------------------------------------------------------
[a-zA-Z0-9]              any character of: 'a' to 'z', 'A' to
'Z', '0' to '9'
--------------------------------------------------------------------------------
w*                      word characters (a-z, A-Z, 0-9, _) (0 or
more times (matching the most amount
possible))
--------------------------------------------------------------------------------
)                        end of 1
--------------------------------------------------------------------------------
@                        '@'

最新更新