解析出名称以使用正则表达式创建电子邮件



我正在尝试提出一个正则表达式,它将从以下列表中取一个名称:John H. Kirk,Fred Andrew Polk,William Mills,并尝试得到以下结果:jkirk@gmail.com,fpolk@gmail.com,wmills@gmail.com通过正则表达式可以这样的事情吗?我想出了如何用下面的代码^w|bw(?=S+$)获取第一个首字母,用这段代码b(w+)W*$获取姓氏,但我不知道如何组合它们,也不知道如何将"@gmail.com"添加到所有这些。

您可以捕获捕获组中的第一个字符,并在第二个捕获组中捕获名称最后部分的字符。

在替换中使用 2 个捕获组$1$2@gmail.com

请注意,这不会照顾使字符小写。

b(w)w+[^,]+ (w+)
  • b
  • (w)w+捕获第 1 组中的单个单词字符,然后匹配 1+ 单词字符
  • [^,]+匹配 1+ 乘以逗号以外的任何字符
  • (w+)匹配空格并捕获第 2 组中的 1+ 单词字符

正则表达式演示

如果名字也可以是单个字符,则可以对第二个量词使用星号代替(w)w*


或者比使用w更广泛的匹配可能是使用S来匹配非空格字符。

([^s,])[^,]+ ([^s,]+)

正则表达式演示

最新更新