gpt4 book ai didi

php - 使用 PHP 正则表达式匹配字符串中的任何 Unicode 空白字符

转载 作者:行者123 更新时间:2023-12-05 02:16:13 28 4
gpt4 key购买 nike

我想在每个空间将文本消息拆分为数组。在我收到这条短信之前,它一直工作得很好。以下是处理文本字符串的几行代码:

    $str = 'T bw4  05/09/19 07:51 am BW6N 499.803';
$cleanStr = iconv("UTF-8", "ISO-8859-1", $str);
$strArr = preg_split('/[\s\t]/', $cleanStr);
var_dump($strArr);

Var_dump 产生这个结果:

array:6 [▼
0 => "T"
1 => b"bw4 05/09/19"
2 => "07:51"
3 => "am"
4 => "BW6N"
5 => "499.803"
]

数组“1 => b”bw4 05/09/19“”中的#1 项不正确,我无法弄清楚数组值前面的字母“b”是什么。此外,“bw4”和“05/09/19”之间的空格非常感谢任何关于如何更好地实现字符串拆分的建议。这是原始字符串:https://3v4l.org/2L35M这是我本地主机的结果图片:http://prntscr.com/jjbvny

最佳答案

要匹配您可能使用的任何 1 个或多个 Unicode 空白字符

'~\s+~u'

您的 '/[\s\t]/' 模式仅匹配单个空白字符 (\s) 或制表符 (\t)(这当然是多余的,因为 \s 也已经匹配制表符),但是由于缺少 u 修饰符,所以 \s 无法匹配您在 bw4 之后的 \u00A0 字符(硬空格)。

所以,使用

$str = 'T bw4  05/09/19 07:51 am BW6N 499.803';
$strArr = preg_split('/\s+/u', $str);
print_r($strArr);

参见 PHP demo屈服

Array
(
[0] => T
[1] => bw4
[2] => 05/09/19
[3] => 07:51
[4] => am
[5] => BW6N
[6] => 499.803
)

关于php - 使用 PHP 正则表达式匹配字符串中的任何 Unicode 空白字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50402537/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com