В настоящее время у меня есть список строк, подобных этому
蘋果,香蕉,橙。
榴蓮, 啤梨
鳳爪,排骨,雞排
24個男,2個女,30個老人
То, что я хочу сделать, это просто взорвать все китайские и буквенно-цифровые символы из этих строк. Как я могу заменить все специальные символы, такие как ,
,
。
/
"
И пробелы с -
или _
затем извлечь весь китайский символ с помощью explode()
как $str = explode("-",$str);
или $str = explode("_",$str);
?
У меня в настоящее время есть RegEx, как это
if(/^\S[\u0391-\uFFE5 \w]+\S$/.test(value)).....
И я модифицировал его в
$str = preg_replace("/^\S[\x{0391}-\x{FFE5} \w]+\s+\S$/u", "-", $str);
но кажется, что это не сработало...
онлайн-экзамены: https://www.regex101.com/r/qR8aA6/1
EDIT: мой ожидаемый результат (для первого жало):
во-первых, его следует заменить на
蘋果-香蕉-橙-
или 蘋果_香蕉_橙_
то я могу использовать $str = explode("-",$str);
чтобы они окончательно стали:
Array
(
[0] => 蘋果
[1] => 香蕉
[2] => 橙
)
Похоже, вы хотите что-то вроде этого,
$txt = <<<EOT
蘋果,香蕉,橙。
榴蓮, 啤梨
鳳爪,排骨,雞排
24個男,2個女,30個老人
EOT;
echo preg_replace('~[^\p{L}\p{N}\n]+~u', '-', $txt);
Вывод:
蘋果-香蕉-橙-
榴蓮-啤梨
鳳爪-排骨-雞排
24個男-2個女-30個老人
Объяснение:
\p{L}
Соответствует любому письму с любого языка.\p{N}
соответствует любому типу символов в любом скрипте.\n
Соответствует символу новой строки./
и ,
между алфавитно - цифровых символов (например, G, F, A, B, 9000)?
\n
на-
?