我想从电话号码列表中删除空格。电话号码的格式大部分为:“+33 x xx xx xx xx”(含引号)。空格可以以不同的方式放置。
在 notepad++ 中,我的“查找内容:”字段如下所示,并有效匹配遇到的每个电话号码:"\Q+\E[0-9 ]+"
。但我不明白如何删除其中的一部分(空格)。
我考虑过分两步进行:首先选择具有上述匹配模式的搜索结果,然后勾选“在选择中”复选框进行替换,但我不知道如何一次选择所有搜索结果。
答案1
“简单”的方法是使用捕获组来表示每组数字。对于固定格式,这种方法效果很好。查找:
"\+33 ([0-9]) ([0-9]{2}) ([0-9]{2}) ([0-9]{2}) ([0-9]{2})"
并将其替换为:
"+33$1$2$3$4"
另一种方法更灵活一些,但同时可能会有点令人困惑,因为它使用\G
不太常见的锚点和\K
可能更不常见的锚点:
(?:"\+33|\G)[^\s"]*\K
(末尾有一个空格)并且替换为无。
(?: # Begin group
"\+33 # Match "+33
| # OR
(?!^)\G # At the end of the previous match (and exclude start of lines)
) # End group
[^\s"]* # Any non-space or quote characters
\K # Reset the match
# Match a space
\G
和在某些早期版本的 Notepad++ 上都不\K
可用。我不记得它们是什么时候推出的,但它们在 v6.5.2 上可用。