【发布时间】:2016-05-19 00:36:16
【问题描述】:
例如我有这样的句子:
$text = "word, word w.d. word!..";
我需要这样的数组
Array
(
[0] => word
[1] => word
[2] => w.d
[3] => word".
)
我对正则表达式很陌生..
这是我尝试过的:
function divide_a_sentence_into_words($text){
return preg_split('/(?<=[\s])(?<!f\s)\s+/ix', $text, -1, PREG_SPLIT_NO_EMPTY);
}
这个
$text = "word word, w.d. word!..";
$split = preg_split("/[^\w]*([\s]+[^\w]*|$)/", $text, -1, PREG_SPLIT_NO_EMPTY);
print_r($split);
有效,但我有第二个问题,我想用 mu 正则表达式编写列表 "w.d" 是特殊情况.. 例如这个词是我的列表 "w.d" , "mr.", "dr."
如果我会接受文字:
$text = "word, dr. word w.d. word!..";
我需要数组:
Array (
[0] => word
[1] => dr.
[2] => word
[3] => w.d
[4] => word
)
抱歉英语不好...
【问题讨论】:
-
要求代码的问题必须表明对所解决问题的最低理解。包括尝试过的解决方案、它们为什么不起作用以及预期的结果。
-
究竟什么是“词”?在英语中,您如何定义“单词”是什么?在编写正则表达式之前,您必须能够用英语描述您尝试实现的规则。
-
向我们展示您到目前为止所做的尝试。 不要描述它,而是编辑问题并粘贴到实际代码中。然后告诉我们什么不起作用。当你尝试它时发生了什么?你得到不正确的结果吗?您得到 no 结果了吗?如果结果不正确,是什么导致它们不正确?你期待什么?你得到任何正确的结果了吗?如果是这样,它们是什么?不要让我们猜测。
-
我尝试:function divide_a_sentence_into_words($text){ return preg_split('/(?
标签: php text-segmentation