所以我有一个相当大的文档,其中包含以下条目:
"kff126d":"Infinity"
其他人喜欢:
"kff126d":"0.03702955"
还有几十个其他键,比如kff126e等,我想删除所有不是我要保留的一个键的东西,以及第二组引号内的任何值,所以我可以看看异常值。
有人可以帮帮我吗?我试过看起来很好,但与之前我用正则表达式完成的一些事情相比,它相当复杂。提前谢谢。
答案 0 :(得分:2)
我可以建议以下正则表达式:
("kff126d":"[^"]*")|(?:(?!"kff126d":).)+
.
匹配换行符选项为ON,并替换为$1\n
。
请参阅regex demo
这将插入多余的空行,您可以使用修改>删除这些空行。 线路运营> 删除空行。
重点是和捕获与(...)
匹配您需要保留的部分,并删除所有其余部分。 所有其余可以与淬火贪婪令牌 (?:(?!"kff126d":).)+
匹配(匹配任何不启动{{1}的字符(.
)序列)。
以下是更新样本数据的替换结果屏幕:
答案 1 :(得分:1)
按 ctrl + h 并在查找部分中使用:(?m)^(?!"kff126d":).*?$
并将替换部分留空。选择搜索模式'正则表达式'并选择全部替换。
这将改变
"kff126d":"0.12345"
sdfgsdfg
sgsfgsfg
"kff126d":"0.03702955"
"kff126d":"0.03702955"
rererer
"kff126d":"0.03702955"
sfdgsfgfsg
sdfgsfg
"kff126e":"0.8888888888888"
到
"kff126d":"0.12345"
"kff126d":"0.03702955"
"kff126d":"0.03702955"
"kff126d":"0.03702955"
之后,如果您要删除所有空行,可以将\R+
替换为\n
答案 2 :(得分:1)
使用Notepad ++:
Infinity
正则表达式
查找内容:
.*?(?:"kff126e":"((?!Infinity)[^"]*)"|\Z)
替换为:
$1\n
来自Notepad ++
按 ctrl h 进入查找和替换 模式
选择正则表达式选项
选择“。匹配换行符”选项
在“查找内容”字段中放置以下正则表达式
.*?(?:"kff126e":"((?!Infinity)[^"]*)"|\Z)
在替换为字段中输入$1\n
点击全部替换
转到酒吧,品尝最喜欢的饮料。
NODE EXPLANATION
----------------------------------------------------------------------
.*? any character (0 or more times (matching
the least amount possible))
----------------------------------------------------------------------
(?: group, but do not capture:
----------------------------------------------------------------------
"kff126e":" '"kff126e":"'
----------------------------------------------------------------------
( group and capture to \1:
----------------------------------------------------------------------
(?! look ahead to see if there is not:
----------------------------------------------------------------------
Infinity 'Infinity'
----------------------------------------------------------------------
) end of look-ahead
----------------------------------------------------------------------
[^"]* any character except: '"' (0 or more
times (matching the most amount
possible))
----------------------------------------------------------------------
) end of \1
----------------------------------------------------------------------
" '"'
----------------------------------------------------------------------
| OR
----------------------------------------------------------------------
\Z before an optional \n, and the end of
the string
----------------------------------------------------------------------
) end of grouping
发生了什么
所需的值将被放入捕获组1 aka $1
,它将替换匹配的文本。 \n
插入一个返回字符。正则表达式引擎将在最后一次替换操作后继续解析您的文本,直到它到达文件末尾。