正则表达式 – grep:如何使用非捕获组?

前端之家收集整理的这篇文章主要介绍了正则表达式 – grep:如何使用非捕获组?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我对以下命令感到困惑

$cat num.txt  
1
2
3
1st
2nd
3th
$cat num.txt | grep -Eo '[0-9](?:st|nd|th)?'

我认为它应该输出

1 
2 
3
1
2
3

但它输出

1
2
3
1
2nd
3th

我在这里做错了什么?感谢您的帮助.

解决方法

您可以使用:

grep -Eo '^[0-9]+' file
1
2
3
1
2
3

或者在grep -P中使用lookahead:

grep -Po '[0-9]+(?=st|nd|th)?' file
1
2
3
1
2
3

猜你在找的正则表达式相关文章