我有一个电子邮件地址,例如example.regex@yahoo.com
。是否存在匹配example.regex@yahoo.com
,example.regex
,example
,regex
的正则表达式?表达式不应与Yahoo.com
,Yahoo
或com
具有以下电子邮件地址: denisa.example@yahoo.com,我希望以下字符串与查询匹配:
denisa.example
denisa
example
我已经使用以下弹性搜索分析器查询进行了尝试:
{
"settings": {
"analysis": {
"filter": {
"email": {
"type": "pattern_capture",
"preserve_original": true,
"patterns": [
"([^@]+)",
"(\\p{L}+)",
"(\\d+)",
"@(.+)"
]
}
},
"analyzer": {
"email": {
"tokenizer": "uax_url_email",
"filter": [
"email",
"lowercase",
"unique"
]
}
}
}
}
}
但是它给了我以下结果:
denisa.example
denisa
example
yahoo.com
yahoo
com
我找到了答案:
"patterns" : [
"^(.*?)@",
"(\\w+(?=.*@))"].
谢谢!
答案 0 :(得分:0)
您可以执行以下操作:
function extract(email) {
const name = email.match(/^(.*?)@.*/)[1];
return [
name,
...name.split(".")
]
}
console.log(extract("example.regex@yahoo.com"));
如果您检查浏览器控制台,将打印出以下内容:
(3) ["example.regex", "example", "regex"]