Nie chciwe wyrażenie regularne pasuje do ograniczników multicharacter w awk
Rozważ ciąg"AB 1 BA 2 AB 3 BA"
. Jak mogę dopasować zawartość między"AB"
i"BA"
w nie chciwy sposób (w awk)?
Próbowałem:
awk '
BEGIN {
str="AB 1 BA 2 AB 3 BA"
regex="AB([^B][^A]|B[^A]|[^B]A)*BA"
if (match(str,regex))
print substr(str,RSTART,RLENGTH)
}'
bez wyjścia. Uważam, że powodem braku meczu jest nieparzysta liczba znaków pomiędzy"AB"
i"BA"
. Jeśli wymienięstr
z"AB 11 BA 22 AB 33 BA"
regex wydaje się działać ..