83753


次のような文字列があるとします

[code]

    Hello!How are you?Good bye!
    
[/code]

例えば、「`ll`」から3つ後の「`o`」、つまりこの場合であれば「`o!How are y`」をマッチ対象とするといったようなことを行いたいです。

`grep -P "(?<=ll).*(?=o)`だともちろん「`o!How are you?Go`」までがマッチ対象になりますし、`grep -P
"(?<=ll).*?(?=o)`とすると、「`o!H`」の部分だけがマッチ対象となってしまいます。数字を指定し、その数だけ後の文字列までをマッチ対象としたいです。

ご存知の方がおられましたらご教授お願いいたします。


CC BY-SA 4.0
2021-11-21T18:02:53.577
83751
2021-11-21T23:34:27.023
2021-11-21T19:27:33.713
49176
49176
question
正規表現 bash grep
正規表現(GNU grep)の先読みでn個後をマッチ対象にするには？

[code]

    $ echo 'Hello!How are you?Good bye!' | grep -Po '(?<=ll)([^o]*o){2}[^o]*(?=o)'
    o!How are y
    
[/code]


CC BY-SA 4.0
2021-11-21T23:34:27.023
83753
2021-11-21T23:34:27.023
47127
83751
answer