我找不到任何解决方法。请帮忙。 我需要将这个“段落”分成句子数组:
$ paragraph =“a。b.c.hello o.c .. hello world -in .. hello.world.8.5 你好,世界。 “;
结果数组应如下所示:
0=>a.
1=>b.
2=>c.
3=>hell o.c.
4=>hello world -in.
5=>hello.
6=>world.
7=>8.5 hello world.
我到目前为止
preg_split('/(?<=[.?!;:])\s+/', $sentence, -1, PREG_SPLIT_NO_EMPTY);
但这不允许使用十进制数字。
答案 0 :(得分:0)
如果前一个匹配匹配,您可以使用show()
告诉正则表达式不匹配。所以
(*SKIP)(*FAIL)
如果(in|o\.c)\.\h+(*SKIP)(*FAIL)|(?<=[.?!])\s+
或in.
匹配,应该告诉正则表达式不匹配。否则,请分为o.c.
,.
或!
和空格。
PHP演示:https://eval.in/542856
Regex101演示:https://regex101.com/r/eS0tR7/1