regex - How to match repeated characters using regular expression operator =~ in bash? -


i want know if string has repeated letter 6 times or more, using =~ operator.

a="aaaaaaazxc2" if [[ $a =~ ([a-z])\1{5,} ]];      echo "repeated characters" fi 

the code above not work.

bash regex flavor i.e. ere doesn't support backreference in regex. ksh93 , zsh support though.

as alternate solution, can using extended regex option in grep:

a="aaaaaaazxc2" grep -qe '([a-za-z])\1{5}' <<< "$a" && echo "repeated characters"  repeated characters 

edit: ere implementations support backreference extension. example ubuntu 14.04 supports it. see snippet below:

$> echo $bash_version 4.3.11(1)-release  $> a="aaaaaaazxc2" $> re='([a-z])\1{5}' $> [[ $a =~ $re ]] && echo "repeated characters" repeated characters 

Comments

Popular posts from this blog

angular - Ionic slides - dynamically add slides before and after -

minify - Minimizing css files -

Add a dynamic header in angular 2 http provider -