Как я могу удалить символы, такие как пунктуация, запятые, тире и т. Д. Из строки, с многобайтовой безопасностью?
Я буду работать с различными языками, и мне интересно, есть ли что-то, что может помочь мне с этим
благодаря
Есть класс символов unicode, который вы можете использовать:
Чтобы сопоставить любые небуквенные символы, вы можете просто использовать \PL+
, отрицание \p{L}
. Чтобы не удалять пробелы, используйте charclass, например [^\pL\s]+
. Или просто просто удалите знаки препинания с помощью \pP+
Ну и, очевидно, не забудьте модификатор regex /u
.
Я использовал это:
$clean = preg_replace( "/[^\p{L}|\p{N}]+/u", " ", $raw ); $clean = preg_replace( "/[\p{Z}]{2,}/u", " ", $clean );
Похожие сообщения
Удалить символы не-utf8 из строки
Я не уверен, что это касается всех персонажей.
Согласно этому сообщению на форуме dreamincode
http://www.dreamincode.net/forums/topic/78179-regular-expression-to-remove-non-ascii-characters/
это должно работать
/[^\x{21}-\x{7E}\s\t\n\r]/
Может быть, это будет полезно?
$newstring = preg_replace('/[^0-9a-zA-Z\s]/', $oldstring);