从短语中删除单词,并在单词之间只留一个空格

时间:2015-07-06 06:04:16

标签: php regex php-5.6

我有以下短语,我需要在PHP中删除英文字符

$field = "日本語フレーズ A Japanese phrase A Japanese phrase 日本語フレーズ";

我有以下正则表达式

trim(preg_replace('/[a-zA-Z]/', '', $field));

但是这将留下不止一个空格。

日本語フレーズ       日本語フレーズ

我需要在它们之间只有一个空格。以下是预期的输出。

日本語フレーズ 日本語フレーズ

4 个答案:

答案 0 :(得分:3)

[a-zA-Z ]+

你可以试试这个。。见。演示。

https://regex101.com/r/cK4iV0/16

$re = "/[a-zA-Z ]+/m";  
$str = "日本語フレーズ A Japanese phrase A Japanese phrase 日本語フレーズ"; 
$subst = " "; 

$result = preg_replace($re, $subst, $str);

答案 1 :(得分:2)

你需要尝试这样的事情: -

<?php
$field = "日本語フレーズ A Japanese phrase A Japanese phrase 日本語フレーズ";
$field1 = trim(preg_replace('/[a-zA-Z]/', ' ', $field));
echo trim(preg_replace('/\s+/', ' ', $field1));
?>

答案 2 :(得分:1)

您需要添加另一个preg_replace功能。

$str = preg_replace(/[A-Za-z]/, '', $field);
echo preg_replace(/^\h+|\h+$|(\h)+/, '\1', $str);

答案 3 :(得分:0)

试试这个:

trim(preg_replace('/[a-zA-Z ]/', ' ', $field));