gpt4 book ai didi

replace - 如何在 Notepad++ 中删除 ":"字符串之前的所有内容?

转载 作者:行者123 更新时间:2023-12-02 01:49:59 34 4
gpt4 key购买 nike

我在 Notepad++ 中有这样一个文件

n1:n1:n1
n1:n1:n2
n1:n1:n3

我想删除第一个“:”之前的所有内容,包括“:”本身
像这样

n1:n1
n1:n2
n1:n3

谢谢..希望我对我的问题的解释足够清楚

肯·怀特:谢谢,但问题是我的文件有超过 10k 行,第一个“n1”在大约 1000 行后更改为“n2”然后它变成“o1”而不是“n1”我想删除第一个“:”之前的所有内容

最佳答案

使用 Replace 并使用正则表达式查找行开头不是冒号 : 的任何字符,后跟冒号,并将它们替换为空

  • 查找内容:^([^:]+:)(.)
  • 替换为:\2
  • 搜索模式:正则表达式

这实际上回答了您的问题,并没有对第一个冒号之前或之后的内容做出任何假设。

  1. 第一个^表示搜索必须从一行的开头开始
  2. 括号是石斑鱼和金鱼。这第一位实际上不需要它们,因为您只是删除了冒号之前的内容,但这使得它与 Ken White 的解决方案并行
  3. 方括号[ ]表示要查找的字符一种。第一个方括号后的第二个 ^ 从您要查找的字符切换为您要查找的字符b.所以 [^:] 表示查找除冒号以外的任何字符
  4. 加号 + 表示查找这组字符的 1 次或多次出现一种。如果某些行可能以冒号开头,而您仍想替换该冒号,则需要在行首查找 0 或更多次非冒号字符b.为此,请将 + 替换为 *
  5. 选择冒号(这样它也会被删除)
  6. 右Paren第一组结束
  7. Left Paren开始第2组
  8. . 表示查找任何字符。如果你在这里没有这个,那么它会删除第一个冒号之前的所有内容,然后下一组将在行的开头,所以你会删除太多。从技术上讲,您可以在此处加上加号或星号,但您不需要它。
  9. 右Paren结束第2组
  10. 替换为框中,\2(如果您愿意,可以是反斜杠或反斜线)将获取第二组的内容并将找到的所有内容替换为这些内容

这是测试输入和输出:

输入(在其中插入一些制表符和空格以及其他内容以备不时之需)

n1:n1:n1
n1:n1:n2
n1:n1:n3
n2:n1:n3
n4:n7:n5

o1:n1:n1:m1:m1:l1:l7b:l1011
z99:

-- Here's some more data
o1:o2:o3:o4:o5
:o2:o3:o4:o5:o6
o1:o1:o3:x37:n99
n2:o1:o3:o44:z76
n4:n7:n5:u72:j9:

输出

n1:n1
n1:n2
n1:n3
n1:n3
n7:n5
n1:n1:m1:m1:l1:l7b:l1011
z99:
o2:o3:o4:o5
:o2:o3:o4:o5:o6
o1:o3:x37:n99
o1:o3:o44:z76
n7:n5:u72:j9:

请注意,它删除了所有没有冒号的行,这在某些情况下可能更可取。它还错过了我在行首或行尾添加冒号的两行。

如果您希望中保留这些空行,请在上面第 3 步的括号中添加一个 \r\n(这些也是反斜杠)。然后它会寻找任何不是冒号 或行尾 的字符(第 3 步),然后是冒号(第 5 步)。因此,它只删除带有冒号的行中的字符。将 Find what 更改为此字符串:

  • 查找内容:^([^:\r\n]+):(.)

要捕捉以冒号开头或第一个冒号后没有任何内容的行,请将加号更改为星号并在点后添加问号:

  • 查找内容:^([^:\r\n]*):(.?)

关于replace - 如何在 Notepad++ 中删除 ":"字符串之前的所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23428664/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com