我在尝试形成正则表达式以从字符串进行匹配以仅获取电子邮件时遇到麻烦,该字符串将像这样:'您好,我们已将电子邮件发送到***foo@hotmail.com检查”
我想只返回***foor@hotmail.com的匹配项,并且我已经尝试过将其作为字符串:
a.match(/\b(?=\w*[@*.])\w+\b/g)
//expected ***foor@hotmail.com
但这只会返回[foo] [hotmail],甚至不会返回.com。
你能帮我吗?
提前谢谢!
答案 0 :(得分:-1)
您可以尝试使用^.+ (.+@.+) .*$
之类的正则表达式。
在浏览器的JS控制台中,您可以对其进行测试:
编辑
const text = "Hello we have sent an email to ***foo@hotmail.com check it"
const result = text.match(/^.+ (.+@[^ ]+) .*$/)
// returns ["Hello we have sent an email to ***foo@hotmail.com check it",
"***foo@hotmail.com", index: 0, input: "Hello we have sent an email to ***foo@hotmail.com check it", groups: undefined]
如您所见,result[1]
包含所需的邮件地址“ *** foo@hotmail.com”。
您也可以使用https://regex101.com对其进行测试。