正则表达式:根据以前的组长度匹配可变数量的字符

时间:2016-01-05 12:49:39

标签: regex grep regex-negation regex-lookarounds

我正在搜索正则表达式((e)grep 正则表达式)以匹配以下字符串;该模式"小于或等于E的数量,而不是前一组E中的模式。"

示例:

应匹配:EEEEEEE EEE EE EE E

不匹配:E EE EE E EEEE

我正在考虑尝试否定一些事情,但这并没有像预期的那样成功。

1 个答案:

答案 0 :(得分:3)

echo 'EEEEEEE EEE EE EE E' | egrep -v '\b(E+)\b.*\1E' # => EEEEEEE EEE EE EE E
echo 'E EE EE E EEEE' | egrep -v '\b(E+)\b.*\1E' # => no matches

我们的想法是,在完成E s(\b(E+)\b)的完整序列后,不应再出现相同序列和另一个E {{1} })。显然,我们使用\1E进行否定。