查找egrep正则表达式的句子特定长度

时间:2017-09-26 02:37:53

标签: linux grep

我需要一个与五个单词完全匹配的egrep表达式。句子以大写字母开头,以标点符号结尾。我需要使用:alpha::upper::punct:类。

我有:

[[:upper:]][a-z]* [[:alpha:]]+ [[:alpha:]]+ [[:alpha:]]+ [[:alpha:]]+[[:punct:]]

但是这也找到了在其中有名字的句子,然后是更多的单词,例如

My friend Frank ate a big sandwich.

我也不能使用-w

1 个答案:

答案 0 :(得分:0)

如果您按如下方式锚定解决方案,它将不再与评论中的示例句子匹配:

grep -E '^[[:upper:]][a-z]* [[:alpha:]]+ [[:alpha:]]+ [[:alpha:]]+ [[:alpha:]]+[[:punct:]]$'

你可以把它缩短一点,因为有一个重复的模式:

grep -E '^[[:upper:]][a-z]*( [[:alpha:]]+){4}[[:punct:]]$'