Это зависит от нескольких факторов:
Кодируется ли строка в UTF-8?
Вам нужны все неанглийские символы, включая такие вещи, как символы и знаки препинания, или только не символьные символы из письменных языков?
Хотите захватить символы, которые не являются английскими или нелатинскими? Я имею в виду, хотите ли вы, чтобы такие символы, как é
и ç
, или вам нужны только символы вне романтического и германского алфавитов?
и, наконец,
- На каком языке программирования вы хотите это сделать?
Предполагая, что вы используете UTF-8, вам не нужна базовая пунктуация, но все в порядке с другими символами, и что вам не нужны никакие стандартные латинские символы, но все будет в порядке с символами ударения и т.п. используйте функцию строкового регулярного выражения на любом языке, который вы используете, который ищет все не-Ascii символы. Это исключит большую часть того, что вы, вероятно, пытаетесь отсеять.
В php это будет:
$string2 = preg_replace('/[^(\x00-\x7F)]*/','', $string1);
Однако это удалит окончания строк, которые вы можете или не можете хотеть.