Ejercicios de expresiones regulares

Dado el siguiente archivo:  «expr_reg_1.txt»

a
aba
aabb
aabbb
aaabbb
aa
baa
abab
ababa
bababa
ab
bbb
baaa
abbba
bbaabb
ba
aaaa
baba
bbaab
bbabaa
aaa
aaba
bbbb
bbbaa
bbbabb

1.no tenga más de tres «a» o tres «b» seguidas
root@debian:~# cat expr_reg_1.txt | grep -E ‘^[^aaaa]|[^bbbb]$^[^bbbb]|[^aaaa]$’
a   <  falta (por error no lo trae)
ab
ba
baa
bbb
aabb
abab
baaa
baba
bbbb
aabbb
bbaab
bbbaa
aaabbb
bababa
bbaabb
bbabaa
bbbabb

2.vayan alternando las «a» y las «b» sin repetirse
root@debian:~# cat expr_reg_1.txt | grep -E ‘^(ab)+$|^(ba)+$’
ab
ba
abab
baba
bababa

3.sólo tenga parejas de «a» y de «b»
root@debian:~# cat expr_reg_1.txt | grep -E ‘[a]{2}[b]{2}’
aabb
aabbb
aaabbb  < este se filtro :p
bbaabb

4.tengan sólo «a» o sólo «b»
root@debian:~# cat expr_reg_1.txt | grep -E ‘^[a]+$|^[b]+$\b’
a
aa
aaa
bbb
aaaa
bbbb

5.haya unas cuantas «a» y luego unas cuantas «b» o al revés
root@debian:~# cat expr_reg_1.txt | grep -E ‘^[a]{2,}[b]{2,}$|^[b]{2,}[a]{2,}$’
aabb
aabbb
bbbaa
aaabbb

6.contengan la cadena «aba» o la cadena «bab»
root@debian:~# cat expr_reg_1.txt | grep -E ‘(aba|bab)’
aba
aaba
abab
baba
ababa
bababa
bbabaa
bbbabb

7.contengan la cadena «ba» dos veces
root@debian:~# cat expr_reg_1.txt | grep -E ‘(ba){2}’
baba
ababa
bababa  < este se filtro :p
bbabaa

________________
Nicolas tech-nico.com

3 comentarios

  1. Hola «a@a»,
    Las lineas que contienen 3 «b» consecutivas:
    root@debian:~# cat expr_reg_1.txt | grep -E ‘[b]{3}’

    Las lineas que solo tienen 3 b «bbb»:
    root@debian:~# cat expr_reg_1.txt | grep -E ‘^[b]{3}$’

Deja un comentario