Совпадение с чем угодно, кроме адреса электронной почты в строке - PullRequest
0 голосов
/ 24 октября 2018

В следующих строках

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) для строки 3 при отбрасывании только адресов электронной почты?

Следующее регулярное выражение соответствует адресам электронной почты

([^\s]+)\b[@]+\b([^\s]+)

Как я могу сделать это наоборот?

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

попробуйте что-то вроде этого, разделите пробелом и удалите последний элемент:

Get-Content "C:\temp\test.txt" |%{ 
$Result=$_.Trim() -split ' '
$Result[0..($Result.Length -2)] -join ' '
}
0 голосов
/ 24 октября 2018

Кажется, что легче перехватить все перед электронной почтой (учитывая, что у вас есть пробелы), например:

^.*(?<=\s{4})

С помощью вкладок вы должны сделать это следующим образом:

^.*(?<=\t)

Редактировать - из-за комментария (отмеченного g_l):

В этом случае ^.*(?<=\s{1}) достаточно для того, чтобы отразить жадную натуру и письмо, не имеющее пробелов внутри.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...