gpt4 book ai didi

regex - 删除除特定模式之外的所有内容

转载 作者:行者123 更新时间:2023-12-03 08:30:28 26 4
gpt4 key购买 nike

我有一个包含很多字符串的日志文件。
我想从这个文件中删除所有内容(查找和替换),除了以 phone= 开头并以 Digits=1 结尾的任何字符串

例如:phone=97212345678&step=1&digits=1
为了找到那个字符串,我正在使用 (phone=.*digits=1) 并且它可以工作!但我没有设法找到正则表达式选择除此字符串之外的所有内容并将其全部清除。

sample file

最佳答案

为了删除特定文本以外的任何内容,您需要使用 .*(text_you_need_to_keep).*.匹配换行符。

在 Notepad++ 中,使用

查找 :.*(phone=\S*?digits=1).* 替换 :$1
注意 : .匹配换行符 选项必须被选中。

我用 \S*?而不是 .*在捕获模式中,因为您只想匹配来自 phone= 的尽可能少的任何非空白字符到最近的 digits . .*过于贪婪,可能会在 DOTALL 选项开启的情况下跨越多行。

更新

当你想保留一些时多个 文本中出现的模式,在 Notepad++ 中,您可以使用

.*?(phone=\S*?digits=1)

替换为 $1\n .这样,您将删除所有不需要的子字符串,但在最后一次出现必要子模式之后的子字符串除外。

您将需要手动或使用删除最后一个块
   FIND: (phone=\S*?digits=1).*
REPLACE: $1

关于regex - 删除除特定模式之外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34173575/

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