我正在尝试使用WebHarvy(.NET)从正则表达式中提取电子邮件地址
电子邮件可以采用多种格式,使用点和下划线,因此我尝试了以下表达式
(\w+|\w+(\W|\.)\w+)@\w+.\w+
\w.+|\w+\S\w+@\w+\.\w+
虽然他们似乎在Regexstorm测试中工作,但当我在WebHarvy中使用它们时,他们只是提取@
之前的部分
请告知
答案 0 :(得分:2)
问题是WebHarvey返回捕获组值。由于您使用捕获组((\w+|\w+(\W|\.)\w+)
)包装了用户部分,因此它仅返回该部分。
您可以使用非捕获组((?:...)
)修复您的正则表达式
(\w+(?:\W+\w+)*@\w+\.\w+)
或使用更通用的
([^\s<>'"]+@[^\s<>'"]+\.[^\s<>'"]+)
[^\s<>'"]+
将匹配除空格,<
,>
,'
和"
符号以外的1个字符。 @
和\.
分别与@
和.
匹配。