我正在尝试提出一个正则表达式,它将从以下列表中取一个名称: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,]+)
正则表达式演示