删除除特定模式之外的所有内容
Remove everything except a certain pattern
我有一个包含很多字符串的日志文件。
我想从此文件中删除所有内容(查找并替换),除了以以下内容开头的任何字符串:phone=
并以 Digits=1
结尾
例如:phone=97212345678&step=1&digits=1
为了找到我正在使用的字符串 (phone=.*digits=1)
,它有效!但我没能找到正则表达式 select 除了这个字符串之外的所有内容并清除它们。
如果您使用的是 Notepad++ 或 EditPlus 等工具,您可以使用以下正则表达式替换:
查找字符串:^phone=(\d+&step=1&)digits=1
替换字符串:
为了删除特定文本以外的任何内容,您需要使用 .*(text_you_need_to_keep).*
和 .
匹配换行符。
在 Notepad++ 中,使用
查找:.*(phone=\S*?digits=1).*
替换:</code></p>
<p><strong><em>注意</em></strong>:<strong>。匹配换行符</strong> 选项必须<em>选中</em>.</p>
<p>我在捕获模式中使用 <code>\S*?
而不是 .*
,因为您只想匹配从 phone=
到最接近的 digits
。 .*
过于贪婪,可能会在打开 DOTALL 选项的情况下跨越多行。
更新
当您想在文本中保留一些 多次 的模式时,在 Notepad++ 中,您可以使用
.*?(phone=\S*?digits=1)
替换为\n
。这样,您将 删除所有不需要的子字符串,但最后一次出现必要的子模式 .
之后的子字符串
您将需要手动或使用
删除最后一个块
FIND: (phone=\S*?digits=1).*
REPLACE:
查找匹配项的正则表达式:
/^phone=.+&digits=1$/
要替换匹配项除外的文件:
/^(?!phone=.+&digits=1$).*/gm
假设您有如下数据:
"for execution plan [ID = 7420] at 12/06/2018 08:00:00"
您只想从数千行中提取 [ID = dddd] 部分。
在 Notepad++ 中按 ctrl+h 打开替换 window,检查正则表达式。
查找内容:
.*?(\[ID = \d+\]).*
替换为:
对于您的特定字符串,正则表达式为:
.*?(phone=.*?digits=1).*
我有一个包含很多字符串的日志文件。
我想从此文件中删除所有内容(查找并替换),除了以以下内容开头的任何字符串:phone=
并以 Digits=1
例如:phone=97212345678&step=1&digits=1
为了找到我正在使用的字符串 (phone=.*digits=1)
,它有效!但我没能找到正则表达式 select 除了这个字符串之外的所有内容并清除它们。
如果您使用的是 Notepad++ 或 EditPlus 等工具,您可以使用以下正则表达式替换:
查找字符串:^phone=(\d+&step=1&)digits=1
替换字符串:
为了删除特定文本以外的任何内容,您需要使用 .*(text_you_need_to_keep).*
和 .
匹配换行符。
在 Notepad++ 中,使用
查找:.*(phone=\S*?digits=1).*
替换:</code></p>
<p><strong><em>注意</em></strong>:<strong>。匹配换行符</strong> 选项必须<em>选中</em>.</p>
<p>我在捕获模式中使用 <code>\S*?
而不是 .*
,因为您只想匹配从 phone=
到最接近的 digits
。 .*
过于贪婪,可能会在打开 DOTALL 选项的情况下跨越多行。
更新
当您想在文本中保留一些 多次 的模式时,在 Notepad++ 中,您可以使用
.*?(phone=\S*?digits=1)
替换为\n
。这样,您将 删除所有不需要的子字符串,但最后一次出现必要的子模式 .
您将需要手动或使用
删除最后一个块 FIND: (phone=\S*?digits=1).*
REPLACE:
查找匹配项的正则表达式:
/^phone=.+&digits=1$/
要替换匹配项除外的文件:
/^(?!phone=.+&digits=1$).*/gm
假设您有如下数据:
"for execution plan [ID = 7420] at 12/06/2018 08:00:00"
您只想从数千行中提取 [ID = dddd] 部分。 在 Notepad++ 中按 ctrl+h 打开替换 window,检查正则表达式。
查找内容:
.*?(\[ID = \d+\]).*
替换为:
对于您的特定字符串,正则表达式为:
.*?(phone=.*?digits=1).*