4

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

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

我有以下正则表达式

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

但这会留下一个以上的空格。

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

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

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

4 回答 4

3
[a-zA-Z ]+

你可以试试这个。替换为.See demo。

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);
于 2015-07-06T06:20:04.487 回答
2

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

<?php
$field = "日本語フレーズ A Japanese phrase A Japanese phrase 日本語フレーズ";
$field1 = trim(preg_replace('/[a-zA-Z]/', ' ', $field));
echo trim(preg_replace('/\s+/', ' ', $field1));
?>
于 2015-07-06T06:14:01.553 回答
1

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

$str = preg_replace(/[A-Za-z]/, '', $field);
echo preg_replace(/^\h+|\h+$|(\h)+/, '\1', $str);
于 2015-07-06T06:08:10.263 回答
0

试试这个:

trim(preg_replace('/[a-zA-Z ]/', ' ', $field));
于 2015-07-06T06:07:31.307 回答