Данные: Код (Text): $str1="Увы набор разобран( если надо могу собрать)"; $str2="набор разобран"; mb_internal_encoding('utf-8'); $str1 = preg_replace("/[^a-zA-ZА-Яа-яЁё0-9\s]/u" , '' , $str1 ) ; if( strcasecmp(mb_strtolower($str1),$str2) == 0) { echo "Yeeeaa \n"; } Почему то не работает. Помогите найти причину, возможно проблема с буквами. Потому что с другими предложениями все хорошо все находит, именно с этим не хочет
Регулярное выражение удаляет все, кроме пробела цифр и букв. Из "Увы набор разобран( если надо могу собрать)" после preg_replace "Увы набор разобран если надо могу собрать". Дальше strcasecmp сравнивает две строки "набор разобран" и "Увы набор разобран если надо могу собрать" - они разные. strcasecmp не ищет в строке, а сравнивает строки.