使用正则表达式删除行

时间:2018-09-25 18:38:29

标签: regex

我有一个具有以下条目的电子名片。

BEGIN:VCARD
VERSION:2.1
N:Smith;John;;;
FN:John Smith
TEL;CELL;PREF:+919999999999
END:VCARD
BEGIN:VCARD
VERSION:2.1
N:Duck;Donald;;;
FN:Donald Duck
TEL;CELL;PREF:+919999999999
END:VCARD

我需要删除每个联系人的第三行,即

N:Smith;John;;;
N:Duck;Donald;;;

我尝试使用正则表达式在文本编辑器中查找和粘贴。查找

2.1/nN:*FN:

并替换为

2.1/nFN:

但这不起作用。

1 个答案:

答案 0 :(得分:0)

您可以使用{p> 1来匹配BEGIN:VCARD之后的第三行

^BEGIN:VCARD\R.*\R\K.+\R?

并替换为空字符串。

详细信息

  • ^-一行的开头
  • BEGIN:VCARD-文字字符串
  • \R-任何换行符序列
  • .*\R-整行,后跟换行符
  • \K-匹配重置运算符会丢弃到目前为止所有匹配的文本
  • .+\R?-除换行符(整个行,.+)以外的其他1个字符,然后是可选的换行符。

enter image description here

注意

要删除以N:开头的行,您可以简单地使用^N:.*\R?,其中^匹配行首,N:匹配N:,{{1 }}占据整行,.*匹配可选的换行符序列。