正则表达式中找到一行正好有3个单词

时间:2015-02-09 03:55:18

标签: grep

我有一个问题,需要我编写一个正则表达式,找到一行包含3组字符(可能是单词或数字),并以另一个特定单词结尾。我想到的方法是找到一个以空间结束的模式,并寻找它3次。假设这是正确的方法,我不知道如何找到一个空格,但我认为它看起来像。*"找到一个空格" {3} endword $ 。这是怎么做的?即使它不是这样做的,你如何找到空间?有什么建议吗?

2 个答案:

答案 0 :(得分:0)

假设有三组词你会接受任何非空格字符,你可以写:

/^\s*(?:\S+\s+){3}endword$/

最初的插入符号是为了确保行上有完全 3个非空格组。

当然,您需要考虑控制字符之类的内容是否会出现,并进行相应调整。

答案 1 :(得分:-1)

根据你的口味,如下所示:

\b+.+?\b+.+?\b+.+?\bendword$

这使用了单词边界标记(\b)和非贪婪重复(+?),因此在您的具体实现中可能略有不同,特别是如果您使用的是旧的比如grep