如果下一个字符是空格或大写字母字符,则PHP按点分解字符串
我有一段话是这样的: Lorem Ipsum只是(不是1.2%)打印和排版的虚拟文本 工业y。Lorem Ipsum一直是业界标准的虚拟文本 从16世纪开始,当一个不知名的印刷商在一个厨房里打印 把它搅乱做成一个样本book。我不仅活了下来 五个世纪,也是电子排版的飞跃, 基本上保持不变。I在20世纪60年代流行起来如果下一个字符是空格或大写字母字符,则PHP按点分解字符串,php,string,explode,Php,String,Explode,我有一段话是这样的: Lorem Ipsum只是(不是1.2%)打印和排版的虚拟文本 工业y。Lorem Ipsum一直是业界标准的虚拟文本 从16世纪开始,当一个不知名的印刷商在一个厨房里打印 把它搅乱做成一个样本book。我不仅活了下来 五个世纪,也是电子排版的飞跃, 基本上保持不变。I在20世纪60年代流行起来 我想把它用法典中的一个点“代码> > 来分割,但是只有当这个点在一个短语的末尾,而不是在中间(如 1.2%代码>)时,当它有一个大写< /代码>字符时(也可能是一个空白)。例如,如
我想把它用法典中的一个点“代码> > <代码>来分割,但是只有当这个点在一个短语的末尾,而不是在中间(如<代码> 1.2%代码>)时,当它有一个<代码>大写< /代码>字符时(也可能是一个空白)。例如,如果我使用:
$arr = explode('.', $paragraph);
每次出现
,它都会拆分该段落
有没有一种快速而干净的方法来实现这一点?如果是,有人能帮我理解吗?使用正则表达式匹配大写字符或空格之前的点,并根据正则表达式匹配来分割字符串
$arr = preg_split("/\.\s?(?=[A-Z])/", $paragraph);
检查使用preg\u split('/\.[\s |$]/',$input\u行)中的结果代码>
这将在点和空格或新行上拆分
不应该只是$arr=explode(“.”,$paragration)代码>工作?(在点后添加空格)。然而,它可能会导致语法错误的文本,因为一个段落可以由多个句子组成。自动纠正可能需要某种人工智能或广泛的规则引擎代码>想法。这是迄今为止最简单的。由于目标是从段落中提取句子,而不管“停止/句号”,这是实现目标的最简单、最快捷的方法。正则表达式可能更高效,运行速度更快(可能在很长的段落中很明显),但就“高尔夫代码”而言,这一个对我来说太快了,但我正要回答/\。\s?(?=[A-Z])/
。@Kaddath你说得对,这会导致从第一个项目中删除额外的空间项目1中有一个新行。谢谢谢谢谢谢谢谢D它工作得很好@emma Yes还删除了新行Explode。。。如果下一个字符是空格或大写,但您没有注意它。同时,您的代码也与最后一个点匹配string@Mohammad不管是否有大写字符。OP认为正确的方法并不总是正确的。去读一读关于方轮的书。嗨@Andreas,谢谢你花时间来帮助我。我真的很感激,但我已经使用了你之前的评论答案和穆罕默德的答案:(