gpt4 book ai didi

php - 将文本拆分成单词问题PHP,复杂的问题

转载 作者:行者123 更新时间:2023-12-02 05:32:19 24 4
gpt4 key购买 nike

我正在尝试将文本拆分为单词:

$delimiterList = array(" ", ".", "-", ",", ";", "_", ":",
"!", "?", "/", "(", ")", "[", "]", "{", "}", "<", ">", "\r", "\n",
'"');
$words = mb_split($delimiterList, $string);

这对字符串工作得很好,但在某些情况下我不得不处理数字。

例如如果我有文本“看这个。我的分数是 3.14,我很高兴。”。现在数组是

[0]=>Look,
[1]=>at,
[2]=>this,
[3]=>My,
[4]=>score,
[5]=>is,
[6]=>3,
[7]=>14,
[8]=>and, ....

然后 3.14 也分为 3 和 14,这在我的情况下不应该发生。我的意思是点应该划分两个字符串而不是两个数字。它应该是这样的:

[0]=>Look,
[1]=>at,
[2]=>this,
[3]=>My,
[4]=>score,
[5]=>is,
[6]=>3.14,
[7]=>and, ....

但我不知道如何避免这种情况!

有人知道如何解决这个问题吗?

谢谢,花岗岩

最佳答案

或者使用正则表达式:)

<?php
$str = "Look at this.My score is 3.14, and I am happy about it.";

// alternative to handle Marko's example (updated)
// /([\s_;?!\/\(\)\[\]{}<>\r\n"]|\.$|(?<=\D)[:,.\-]|[:,.\-](?=\D))/

var_dump(preg_split('/([\s\-_,:;?!\/\(\)\[\]{}<>\r\n"]|(?<!\d)\.(?!\d))/',
$str, null, PREG_SPLIT_NO_EMPTY));

array(13) {
[0]=>
string(4) "Look"
[1]=>
string(2) "at"
[2]=>
string(4) "this"
[3]=>
string(2) "My"
[4]=>
string(5) "score"
[5]=>
string(2) "is"
[6]=>
string(4) "3.14"
[7]=>
string(3) "and"
[8]=>
string(1) "I"
[9]=>
string(2) "am"
[10]=>
string(5) "happy"
[11]=>
string(5) "about"
[12]=>
string(2) "it"
}

关于php - 将文本拆分成单词问题PHP,复杂的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1600649/

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