正则表达式匹配任何东西但(0 / \ d +)

时间:2015-03-12 10:53:26

标签: regex

如何匹配(0/\d+)以外的任何内容:

aaa 0/1 ddd
fff 0/111 fff
38383 0/24 39303 .. 303

在这个例子中,我希望匹配所有内容,但是:

0/1
0/111
0/24

最终目标是清理文本文件并仅在其中保留这些字符串:

0/1
0/111
0/24

3 个答案:

答案 0 :(得分:0)

您可以使用sed

sed 's/.*\(0\/[0-9]\+\).*/\1/g' input.txt

<强>解释

以上命令将0后跟正斜杠和一个或多个后续数字匹配到捕获组1。比赛前后的所有其他.*都被丢弃。 g表示sed在模式匹配时应用替换次数,而不仅仅是一次。

<强>输出:

0/1 
0/111 
0/24 

答案 1 :(得分:0)

^.*(\b0\/\d+\b).*$

$1\1试试此。请参阅demo.use Multiline mode

https://regex101.com/r/iS6jF6/16

答案 2 :(得分:0)

你不需要删除任何东西,只需匹配即可。

grep -o '0/[0-9]\+' file

示例:

$ echo 'fff0/111fff0/111fff' | grep -o '0/[0-9]\+'
0/111
0/111