¿Cómo puedo extraer o precompletar caracteres chinos en una cadena?

Actualmente tengo una lista de cadenas como esta

蘋果,香蕉,橙。 榴蓮, 啤梨 鳳爪,排骨,雞排 24個男,2個女,30個老人 

Lo que quiero hacer es simplemente explotar todos los caracteres chinos y alfanuméricos de estas cadenas. ¿Cómo puedo reemplazar todos los caracteres especiales como , / " Y espacios con - o _

luego extrae todo el carácter chino con explode() como $str = explode("-",$str); o $str = explode("_",$str); ?

Actualmente tengo un RegEx como este

  if(/^\S[\u0391-\uFFE5 \w]+\S$/.test(value))..... 

Y lo modifiqué en

  $str = preg_replace("/^\S[\x{0391}-\x{FFE5} \w]+\s+\S$/u", "-", $str); 

pero parece que no funcionó …

los ejemplos en línea: https://www.regex101.com/r/qR8aA6/1

EDITAR: mi salida esperada (para la primera picadura):

en primer lugar, debe ser reemplazado en

蘋果-香蕉-橙- o 蘋果_香蕉_橙_

entonces puedo usar $str = explode("-",$str); para hacer que finalmente se vuelvan:

 Array ( [0] => 蘋果[1] => 香蕉[2] => 橙) 

Solutions Collecting From Web of "¿Cómo puedo extraer o precompletar caracteres chinos en una cadena?"

Parece que quieres algo como esto,

 $txt = < < 

Salida:

 蘋果-香蕉-橙-榴蓮-啤梨鳳爪-排骨-雞排24個男-2個女-30個老人 

MANIFESTACIÓN

Explicación:

  • \p{L} Coincide con cualquier tipo de letra de cualquier idioma.
  • \p{N} coincide con cualquier tipo de carácter numérico en cualquier secuencia de comandos.
  • \n Coincide con un carácter de nueva línea.
  • Al poner todo dentro de una clase de carácter negada hará la operación opuesta.