是否可以创建一个匹配重叠字符模式的正则表达式?
例如,我想匹配ABC,BCD,西德和定义从字符串abcdef。
如果不可能的话,你能用另外两种石器时代的工具做同样的事情吗? sed 和 awk?
答案1
如果你的意思是重复提取3个字符, 然后:
在旧的 sed 中:
$ sed ':1;h;s/\(...\).*/\1/p;g;s/.//;t1;d' <<<$'abcdef\n1234567\n'
abc
bcd
cde
def
123
234
345
456
567
在旧的 awk 中:
$ awk '{a=$0;for(i=1;i<length(a)-1;i++){print substr(a,i,3)}}' <<<$'abcdef\n1234567'
abc
bcd
cde
def
123
234
345
456
567