正则表达式保留所有带分隔符的行(崇高)
Regex keep all lines with delimiter (sublime)
我有一个包含大量文本的文件,但在某些行中只有以下几行:
sometext:someothertext
我想要的是保留这些线条。
我写了一个正则表达式,但这与我想要的完全相反:
[0-9a-zA-Z]+(:[0-9a-zA-Z]+)
还有几行有分隔符。我不需要保留那些。示例行将是:
This is a very nice line saying stuff about sometext:someothertext
仅包含 sometext:someothertext
格式的行的正则表达式看起来如何?
您可以使用
^(?![0-9a-zA-Z]+:[0-9a-zA-Z]+$).*$\R*
此表达式有效 like this。
替换文本为空。
图案详情:
^
- 行首(m
多行选项在 SublimeText 中是默认的)
(?![0-9a-zA-Z]+:[0-9a-zA-Z]+$)
- 该行不应与模式匹配:1+ 个字母数字后跟 :
和 1 个或多个字母数字
.*$
- 匹配整行(甚至是空行)
\R*
- 零个或多个换行符。
如果我有以下文字:
local06:local16
TEXT local76:local16
local06:local17
local06:local19
More TEXT local76:local678
结果是:
这是一个反面例子:
[^: \t]:[^: \t]
匹配:
- 不是冒号,space 或制表符
- 冒号
- 不是冒号,space 或制表符
您可以向 "not" 字符添加 class(es) 任何您想要排除的其他内容。
这是一个更正面的例子:
[0-9A-Za-z]:[0-9A-Za-z]
与 grep、awk 或 sed 一起使用,以上将匹配要打印的行:
grep '[^: \t]:[^: \t]' foo.txt
awk '/[^: \t]:[^: \t]/' foo.txt
sed '/[^: \t]:[^: \t]/ p; d' foo.txt
grep '[0-9A-Za-z]:[0-9A-Za-z]' foo.txt
awk '/[0-9A-Za-z]:[0-9A-Za-z]/' foo.txt
sed '/[0-9A-Za-z]:[0-9A-Za-z]/ p; d' foo.txt
如果你想匹配整行...你可以在任一正则表达式前后使用.*
。
我有一个包含大量文本的文件,但在某些行中只有以下几行:
sometext:someothertext
我想要的是保留这些线条。 我写了一个正则表达式,但这与我想要的完全相反:
[0-9a-zA-Z]+(:[0-9a-zA-Z]+)
还有几行有分隔符。我不需要保留那些。示例行将是:
This is a very nice line saying stuff about sometext:someothertext
仅包含 sometext:someothertext
格式的行的正则表达式看起来如何?
您可以使用
^(?![0-9a-zA-Z]+:[0-9a-zA-Z]+$).*$\R*
此表达式有效 like this。
替换文本为空。
图案详情:
^
- 行首(m
多行选项在 SublimeText 中是默认的)(?![0-9a-zA-Z]+:[0-9a-zA-Z]+$)
- 该行不应与模式匹配:1+ 个字母数字后跟:
和 1 个或多个字母数字.*$
- 匹配整行(甚至是空行)\R*
- 零个或多个换行符。
如果我有以下文字:
local06:local16
TEXT local76:local16
local06:local17
local06:local19
More TEXT local76:local678
结果是:
这是一个反面例子:
[^: \t]:[^: \t]
匹配:
- 不是冒号,space 或制表符
- 冒号
- 不是冒号,space 或制表符
您可以向 "not" 字符添加 class(es) 任何您想要排除的其他内容。
这是一个更正面的例子:
[0-9A-Za-z]:[0-9A-Za-z]
与 grep、awk 或 sed 一起使用,以上将匹配要打印的行:
grep '[^: \t]:[^: \t]' foo.txt
awk '/[^: \t]:[^: \t]/' foo.txt
sed '/[^: \t]:[^: \t]/ p; d' foo.txt
grep '[0-9A-Za-z]:[0-9A-Za-z]' foo.txt
awk '/[0-9A-Za-z]:[0-9A-Za-z]/' foo.txt
sed '/[0-9A-Za-z]:[0-9A-Za-z]/ p; d' foo.txt
如果你想匹配整行...你可以在任一正则表达式前后使用.*
。