Regex to match string containing two names in any order
Searching example for “Jack James”:
^(?=.\bjack\b)(?=.\bjames\b).*$
Fix for accented characters:
str_replace([‘a’,’ã’,’á’,’â’,’e’,’é’,’ê’,’i’,’í’,’o’,’ó’,’ô’,’u’,’ú’], [‘(a|ã|á|â)’,'(ã|a)’,'(á|a)’,'(â|a)’,'(e|é|ê)’,'(é|e)’,'(ê|e)’,'(i|í)’,'(í|i)’,'(o|ó|ô)’,'(ó|o)’,'(ô|o)’,'(u|ú)’,'(ú|u)’], $string)
source: https://stackoverflow.com/questions/4389644/regex-to-match-string-containing-two-names-in-any-order