在以下几行
Doe, John john.doe@example.com
Bar, Foo foo.bar@example.com
Example, Michael (Contract Worker) michael.example@example.com
如何使正则表达式仅返回
Doe, John
(第1行)Bar, Foo
(第2行)和Example, Michael (Contract Worker)
,而仅丢弃
电子邮件地址?以下正则表达式与电子邮件地址匹配
([^\s]+)\b[@]+\b([^\s]+)
我该如何相反?
答案 0 :(得分:4)
在发送电子邮件之前(考虑到您那里有空格)捕获所有内容似乎更容易:
^.*(?<=\s{4})
使用标签,您必须这样做:
^.*(?<=\t)
编辑-由于有评论(g_l指出):
在这种情况下,^.*(?<=\s{1})
足以满足正则表达式的贪婪性质,并且电子邮件中没有空格。
答案 1 :(得分:2)
尝试类似的方法,按空格分割并删除最后一个元素:
Get-Content "C:\temp\test.txt" |%{
$Result=$_.Trim() -split ' '
$Result[0..($Result.Length -2)] -join ' '
}