我正在尝试在Notepad ++中使用正则表达式替换字符串。数据大致如下所示。有些联系人没有姓,其他联系人没有名字。所有联系人都用分号(;)分隔,并且所有电子邮件地址都用尖括号预订。
Application
如何匹配电子邮件中的@符号,然后回头查找打开的尖括号,然后向前查找关闭的尖括号?我正在使用Notepad ++将电子邮件地址替换为字符串,例如“ XXX”。
答案 0 :(得分:1)
答案 1 :(得分:1)
对于给定的示例,您可以使用正数lookbehind和正向查找来断言左侧和右侧的内容是<>
要匹配电子邮件部分,请使用否定的character class而不是左括号[^<]+
,匹配@
,然后使用否定字符类而不是右括号{{ 1}}
要匹配包括左,右括号和分号,可以使用:
答案 2 :(得分:1)
一种非常快速而精确的解决方法是:
<[^@\s<>]+@[^@\s<>]+>;
故障:
<
匹配打开角括号[^@\s<>]+
匹配除@
,空格,>
或<
之外的所有内容@
匹配@
[^@\s<>]+
重复与上述相同的字符类>;
匹配;
后面的闭合角括号答案 3 :(得分:0)
使用以下正则表达式:
[^<]+@[^>]+
如果您确定名字和姓氏不会包含 @和尖括号,那么上述正则表达式将可以正常工作。节省了因超前和回头而造成的性能开销。