在Notepad++中计算一行中的字符数

4

我想要计算单行中某个字符出现的次数,然后编辑包含该字符的行。

比方说我有一行:

\serv\file\subfile\subsubfile\subsubsubfile

有没有办法计算出\字符出现的次数,并且如果它出现的次数不超过两次,清空该行并留空?


非常抱歉。我现在才看到,在尝试不同的答案并真正坐下来学习正则表达式后,我可能没有就我想要实现的目标提出正确的问题。 我想这个表达式可以满足我的需求 '^(\([^\])*?){1,5}$' - KjetilJar
所有的答案都不幸地给出了用正则表达式替换少于2个反斜杠的行。我想知道一种有效地获取某行中字符计数的方法。这本来是一个好问题,但你为什么要一口气问两个问题呢...你的第二个问题与标题毫无关系。 - MarioDS
我以为我想要的结果比实际要容易得多。所以在懒惰的一瞬间,我没有真正尝试就问了出来。当我开始尝试不同的建议时,我意识到我必须用不同的方式来做。所以我花了一天时间学习正则表达式,发现我的最初想法实际上不能使用正则表达式来实现。第二个问题主要是想看看是否有一种方法可以操作符合正则表达式匹配的行。你是否有兴趣找到一种方法来计算某些东西在一行中出现的次数?@MDeSchaepmeester - KjetilJar
我曾经是,不过现在不再了,但如果你知道怎么做,请告诉我! - MarioDS
3个回答

4

查找 ^([^\\]*[\\]?[^\\]*){0,2}$

替换为空字符串


只是出于好奇,你为什么要删除和恢复你的答案? - The Guy with The Hat
1
@TheGuywithTheHat 我最初回答了“清空出现两次以上的行”的问题,这与OP的要求相反。在重新阅读问题后,我给出了这个答案。 - Kent

2

您想要做的事情是什么?

查找 - ^(?!.*\\.*\\.*\\.*).*$\r\n

替换 -

enter image description here

当您执行全部替换时,您还将获得被替换的行数 - 这样可以给您计数

在我的示例中,第2、4和5行将被删除,因为它们少于2个斜杠(/)


无法运行。请尝试只用\serv\file作为唯一一行代码。 - The Guy with The Hat
@TheGuywithTheHat - 是的,但如果该行包含换行符,它应该能正常工作。 - Pankaj Jaju
但是,如果该行不包含换行符,则它将无法工作!此外,它仅适用于Windows,而不适用于Mac、Linux等操作系统。(在大多数情况下) - The Guy with The Hat
啊...没有考虑到其他操作系统。 - Pankaj Jaju
它对我来说可以工作(至少在使用Windows时),但是我如何不删除该行而是插入一个空白行呢? - KjetilJar
@KjetilJar - 在这种情况下,只需在查找中使用 ^(?!.*\\.*\\.*\\.*).*$ - Pankaj Jaju

1
尝试使用这个正则表达式:

^[^\\]*\\[^\\](?:*\\[^\\]*)?$

替换为空。http://regex101.com/r/qW0jE3 这里有解释和演示。

如果您想更改允许的 \ 数量,您有三个选项:

  • 更改上面正则表达式中的 (?:*\\[^\\]*) 数量。
  • 更改此正则表达式中的第二个数字:^(?:[^\\]*\\[^\\]*){0,2}$
  • 更改此正则表达式中的第一个数字:^(?:\\?[^\\]*){2}$

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接