我需要识别给定单元格中的所有电子邮件地址,这些地址用任何特殊字符括起来,用任意数量的多行书写。
这是我建造的东西。
"(!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
--------------------------------------------------------------------------------
@ '@'