Need to check if a string contains four sequential characters or consecutive characters/strings or identical letters/numbers/string/characters in PHP then following regex and code can be useful for you. I tested it with following code and regex is generated from
- https://regex101.com/r/W2wbFc/1
- https://regex101.com/r/lH8oP1/3
- https://regex101.com/r/oAAjto/1
- https://regex101.com/r/Xbe1gH/1
<?php $re = '/(abcd|bcde|cdef|defg|efgh|fghi|ghij|hijk|ijkl|jklm|klmn|lmno|mnop|nopq|opqr|pqrs|qrst|rstu|stuv|tuvw|uvwx|vwxy|wxyz)+/xi'; $str = 'rupakabcd test'; if(preg_match_all($re, $str, $matches)){ echo "Contains sequential characters"; }else{ echo "Does not contain sequential characters"; }
If you wanted to check case sensitive then remove ‘i’ from $re variable at the end.
Comment if you find any easy way to make it works.
Regex to find identical characters:
(\w)(\1+){3}
$re = '/(\w)(\1+){3}/i'; $str = 'aaaa rrrr rupak rupakaaaaarrr'; preg_match_all($re, $str, $matches); // Print the entire match result print_r($matches);
Regex to find identical numbers:
(\d)\1{3,}
$re = '/(\d)\1{3,}/'; $str = '123452222222222222 1234 1111 12345 654128 45721111572000004520 aaaa rupak '; preg_match_all($re, $str, $matches); // Print the entire match result print_r($matches);
Regex to find five sequential numbers:
(?: 0(?=1|\b)| 1(?=2|\b)| 2(?=3|\b)| 3(?=4|\b)| 4(?=5|\b)| 5(?=6|\b)| 6(?=7|\b)| 7(?=8|\b)| 8(?=9|\b)| 9\b ){5}
$re = '/(?: 0(?=1|\b)| 1(?=2|\b)| 2(?=3|\b)| 3(?=4|\b)| 4(?=5|\b)| 5(?=6|\b)| 6(?=7|\b)| 7(?=8|\b)| 8(?=9|\b)| 9\b ){5}/x'; $str = '123 321 56789 890123 321098 134 333 421 12345 6789 15246 1234567890 67890 12345 23456 34567 456789 56789 '; preg_match_all($re, $str, $matches); // Print the entire match result print_r($matches);