【问题标题】:PHP preg_split() pattern for splitting by sentence periods with exception of spliting by periods in floats/pricesPHP preg_split() 模式用于按句点拆分,但在浮动/价格中按句点拆分除外
【发布时间】:2012-04-28 15:32:26
【问题描述】:

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

Lorem ipsum dolor 坐 3.14 amet,精英。 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 模式应该是什么样子?干杯

【问题讨论】:

  • 所以您只想在点后有空格字符或字符串结尾时进行拆分?您可能想删除空结果?

标签: php regex preg-split


【解决方案1】:

这个可能有用

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      如果您只想在点后有空格或字符串结尾的情况下进行拆分:

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

      这会给你空结果,你可以通过设置 PREG_SPLIT_NO_EMPTY 标志来删除它。

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

      另见preg_split

      【讨论】:

        猜你喜欢
        • 2021-09-21
        • 2013-04-30
        • 2012-12-22
        • 1970-01-01
        • 2016-07-20
        • 2011-06-11
        • 2023-04-01
        • 1970-01-01
        相关资源
        最近更新 更多