PHP + 将段落拆分为数组
PHP + Split paragraph into array
我找不到任何解决办法。请帮忙。
我需要将此 "paragraph" 拆分为句子数组:
$paragraph = "a. b. c. hello o.c.. hello world -in.. hello. world. 8.5
hello world. ";
生成的数组应如下所示:
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);
但这不允许小数。
如果前面的匹配匹配,您可以使用 (*SKIP)(*FAIL)
告诉正则表达式不匹配。所以
(in|o\.c)\.\h+(*SKIP)(*FAIL)|(?<=[.?!])\s+
如果 in.
或 o.c.
匹配, 应该告诉正则表达式不匹配。否则拆分 .
、!
或 ?
和 space.
PHP 演示:https://eval.in/542856
Regex101 演示:https://regex101.com/r/eS0tR7/1
我找不到任何解决办法。请帮忙。 我需要将此 "paragraph" 拆分为句子数组:
$paragraph = "a. b. c. hello o.c.. hello world -in.. hello. world. 8.5 hello world. ";
生成的数组应如下所示:
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);
但这不允许小数。
如果前面的匹配匹配,您可以使用 (*SKIP)(*FAIL)
告诉正则表达式不匹配。所以
(in|o\.c)\.\h+(*SKIP)(*FAIL)|(?<=[.?!])\s+
如果 in.
或 o.c.
匹配, 应该告诉正则表达式不匹配。否则拆分 .
、!
或 ?
和 space.
PHP 演示:https://eval.in/542856
Regex101 演示:https://regex101.com/r/eS0tR7/1