foo*_*oty 0 regex unix yacc lex
如何匹配aa的数量应该是10分钟的aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ...
我的意思是我知道这种方式:
[a][a][a][a][a][a][a][a][a][a][a][a][a]a*b
Run Code Online (Sandbox Code Playgroud)
但是必须有一个更好的优雅方法,如果我的最小数量变为100 ...
它是什么?我试图匹配(a ^ n)b类似于n可以是任何东西的东西
编辑:
我忘了提到这是使用lex和yacc来完成的...其中lex必须将一个令牌返回给yacc.
%{
#include "y.tab.h"
%}
%%
aaaaaaaaaa[a]*b {return ok;}
\n {return '\n';}
. {return 0;}
%%
Run Code Online (Sandbox Code Playgroud)
尝试
a{10,}
Run Code Online (Sandbox Code Playgroud)
说a10次或更多次.
grep -E "a{10,}" filename
Run Code Online (Sandbox Code Playgroud)
匹配aaaaaaaaaaaaaaaaaaaaaaaaab但不是aaaaaaaaab.
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |