我有一个返回给我的值列表,它们都以 | 结尾,如下所示:
testdata1-old |
testdata |
test2-old|
我想删除所有包含 -old 的行。我可以使用什么正则表达式?
答案1
我认为您对正则表达式有误解。从根本上讲,它们回答了“此文本是否看起来像此特定模式?”的问题。有许多工具使用正则表达式来处理文本,例如sed
或grep
,我认为您混淆了这两者。
您需要做的是形成一个与要过滤的文本相匹配的正则表达式。例如,您要查找的表达式是^.*-old\|$
,然后使用类似这样的内容过滤行。
foreach line in input_file
if regex.matches(line, "^.*-old\|$") then
continue
else
print line
答案2
你需要的是
grep -v -E '^.*-old\|$' 输入文件 > 输出文件
或者应该做同样的事情:
egrep -v'^.*-old\|$' 输入文件 > 输出文件
现在,困难的部分是找到一个可以从 cmd.exe 或 Powershell 运行的Windowsgrep
版本。egrep