PHP preg_split()模式用于按句子分割,除了按浮点数/价格中的句点分割

时间:2012-04-28 15:32:26

标签: php regex preg-split

我希望能够在句子之后按句点preg_split内容,即

Lorem ipsum dolor坐3.14 amet,elit。 Vivamus sed elit eu。 Morbi pulvinar dignissim。

应输出(浮点数不应拆分):

array(
  'Lorem ipsum dolor sit 3.14 amet, elit',
  'Vivamus sed elit eu',
  'Morbi pulvinar dignissim'
)

array(
  'Lorem ipsum dolor sit 3',
  '14 amet, elit',
  'Vivamus sed elit eu',
  'Morbi pulvinar dignissim'
)

任何想法preg_split模式应该如何?欢呼声

3 个答案:

答案 0 :(得分:3)

这个可以工作

$res = preg_split('/\.[^\d]/', $str);

答案 1 :(得分:1)

以下适用于您的示例,但我不确定它是否总能完成这项工作,但希望您可以使用它:"/\.[^$|\d]/"

答案 2 :(得分:0)

如果您只想分割点后面有空格或字符串结尾的情况:

$res = preg_split('~\.( |$)~', $str);

这可以为您提供空结果,您可以通过设置PREG_SPLIT_NO_EMPTY标记来删除该结果。

$res = preg_split('~\.( |$)~', $str, 0, PREG_SPLIT_NO_EMPTY);

另见preg_split