我尝试去寻找它并进行实验,但却无法找到答案。
在 notepad++ 中我有一行如下内容:
102.
或者
12
我想删除整行(所以我想我需要 \n\r)以及所有这些类型的行,我该怎么做?(我不知道它是一位小数、两位小数还是三位小数,或者它后面是否有一个点)。
答案1
我不是 100% 清楚您的要求是什么(即,要删除的行的可能内容是什么),但我已经制定了一个正则表达式,假设该行以 1 到 3 个数字开头,后跟一个可选的句号,并且行上没有任何其他内容(开始或结束)。
找什么 :^\d{1,3}\.?\r?\n?
替换为:(空白)
在以下数据集上测试
102.
102
12
12
1.
1
9999
ab21.
8442.
留下
9999
ab21.
8442.
解释
^
是仅与行首匹配的特殊字符。这只是为了确保模式不只是位于较长行的末尾。
\d
用于匹配任意数值(即0-9)。
{1,3}
用于修改前一个语句(在本例中为\d
),并用于指定您希望该语句匹配的最小和最大次数。因此,此行表示您希望匹配 1 到 3 次(含)之间的数字。
\.
用于匹配点字符。.
是正则表达式中的特殊字符,用于匹配任何字符(默认情况下换行符除外,尽管 Notepad++ 中有一个选项可以更改此行为)。因此,我们需要使用反斜杠对其进行转义,以确保将其视为.
“字符”而不是.
“匹配模式”。
?
用于修改类似于的最后一条语句{1,3}
,但这次它用于表示前一个语句([.]
)是可选的(技术上它表示匹配 0 到 1 次,但最终结果是相同的)。
\r?\n?
用于匹配新行,正如您之前提到的。正则表达式在没有它的情况下也可以工作,但它不会删除该行,只会清除它(留下一个空白行)。通过使和都\r
可选\n
,这将在 Windows、Linux 和 Mac 之间变得可移植。
最后,我们将该字段留空的原因Replace with :
仅仅是因为我们不希望任何内容回到我们正在删除的行中。
希望这是您所寻找的,如果不是,请为您指明正确的方向。