正则表达式字符与grep一致重复n次或更多次

时间:2017-12-21 08:27:52

标签: regex grep repeat

我需要找到正则表达式来找到一个用grep重复4次或更多次的字符。

我知道表达式是{n,},所以如果我需要找到行,例如,当字符“g”重复4次或更多次时,理论上用grep man page是:

grep "g{4,}" textsamplefile

但是不起作用。有什么帮助吗?

角色可以有其他字母。例如,有效匹配是:

有效的匹配的

示例的

其他的有效的匹配的此处

GGGG 其他

1 个答案:

答案 0 :(得分:1)

您应该在以下位置更改grep命令:

grep -E 'g{4,}' input_file # --> this will extract only the lines containing chains of 4 or more g

如果您想要包含所有包含4个或更多相同字符的链的行,那么您的正则表达式会变成:

grep -E '(.)\1{3,}' input_file

如果您不需要链,但只有g出现4次或更多次的行:

grep -E '([^g]*g){4}' input_file

您可以概括使用以下内容重复4次或更多次的字符:

grep -E '(.)(.*\1){3}' input_file