Я хочу написать регулярное выражение в php для соответствия только любым английским символам, пробелам, номерам и всем специальным символам.
Из этого вопроса Regex любой символ ascii
Я попробовал это
preg_match("/[\x00-\x7F]+/", $str); 
но он выдает предупреждение
 No ending delimiter '/' found 
поэтому, как написать это регулярное выражение в php.
альтернативой было бы что-то вроде [az \ d \ s], а также по одному рассмотреть все специальные символы, но разве нет способа сделать проще?
благодаря
Есть ряд сложных решений, но я бы предложил это красиво простое регулярное выражение:
 ^[ -~]+$ 
Он позволяет печатать все символы в таблице ASCII .
В PHP:
 $regex = '%^[ -~]+$%'; if (preg_match($regex, $yourstring, $m)) { $thematch = $m[0]; } else { // no match... } 
объяснение
^ утверждает, что мы находимся в начале строки [ -~] соответствует всем символам между пробелом и тильдой (все печатные символы в таблице ASCII) + означает «соответствует одному или нескольким из них» $ Anchor утверждает, что мы находимся в конце строки Регулярное выражение PHP содержит набор классов символов, которые вы можете ссылаться, причем ascii является одним из них
 $test = "hello world 123 %#* 单 456"; preg_match_all("/[[:ascii:]]+/",$test,$matches); print_r($matches);