如果下一个字符是空格或大写字母字符,PHP将逐点爆炸

时间:2018-12-12 11:56:50

标签: php string explode

我有一个看起来像这样的段落:

  

Lorem Ipsum只是打印和排版的伪文本(不是 1.2%)   工业 y。 L orem Ipsum一直是业界标准的伪文本   从1500年代开始,当一个未知的打印机拿起一个   对其进行加扰以生成类型样本boo k。我不仅存活了下来   五个世纪以来,也实现了电子排版的飞跃,   基本上保持不变。我在1960年代开始流行

我想用句点.在短语中将其拆分,但是仅当该点在短语的末尾而不是在中间(例如1.2%)并且有其后的UPPERCASE字符(也可能是空格)。例如,如果我使用:

$arr = explode('.', $paragraph);

它将在每次.出现时拆分该段落。

是否有一种快速,干净的方法来获取该信息?如果可以,请有人帮我理解吗?

2 个答案:

答案 0 :(得分:3)

使用正则表达式匹配大写字符或空格之前的点,并使用preg_split()根据正则表达式匹配来拆分字符串。

$arr = preg_split("/\.\s?(?=[A-Z])/", $paragraph);

demo中查看结果

答案 1 :(得分:1)

使用<input id="buttonOpen" type="checkbox" /> <label for="buttonOpen"> <div class="button-menu" onclick="openMenu(this)"> <div class="bar1"></div> <div class="bar2"></div> <div class="bar3"></div> </div> </label> <div id="menu"> <ul> <li><a href="index.html">Home</a></li> <li><a href="#">Item</a></li> <li><a href="#">Item</a></li> <li><a href="#">Item</a></li> <li> <ul class="menuSocial"> <li><a href="#"><i class="fas fa-envelope"></i></a></li> <li><a href="#" target="_blank"><i class="fab fa-linkedin-in"></i></a></li> </ul> </li> </ul> </div>

这将在点和空格或换行符之间分开。

https://www.phpliveregex.com/p/qiC
https://3v4l.org/FOaHu