在第一个";之前获取一个字符串&引用;使用php
“Lorem Ipsum只是印刷和排版行业的虚拟文本。” 从 “Lorem Ipsum只是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是行业标准的虚拟文本,当时一位不知名的印刷商拿起一个打印工具,将其拼凑成一本打印样本书。它不仅存活了五个世纪,而且还跨越到电子排版,基本上保持不变。它在20世纪60年代随着包含Lorem Ipsum段落的Letraset表单的发布而流行,最近随着包括Lorem Ipsum版本的Aldus PageMaker等桌面出版软件的发布而流行。” 我们如何做到这一点?php中有没有一个好的函数可以用来做这样的事情 谢谢 Adam Ramadhan你可以使用explode()来获得第一句话。在第一个";之前获取一个字符串&引用;使用php,php,Php,“Lorem Ipsum只是印刷和排版行业的虚拟文本。” 从 “Lorem Ipsum只是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是行业标准的虚拟文本,当时一位不知名的印刷商拿起一个打印工具,将其拼凑成一本打印样本书。它不仅存活了五个世纪,而且还跨越到电子排版,基本上保持不变。它在20世纪60年代随着包含Lorem Ipsum段落的Letraset表单的发布而流行,最近随着包括Lorem Ipsum版本的Aldus PageMaker等桌面出版软件的发布而流行。” 我
您可以使用函数拆分它
$sentences = explode (".", $text);
// first sentence is in $sentences[0]
类似这样的东西怎么样(其他人建议使用
explode
——所以我建议另一种解决方案):
regex将:
- 从字符串开头开始:
^
- 匹配任何非匹配项。:
[^\.]
- 任意次数:
[^\.]*
而且,由于您希望在输出的末尾有一个
,并且
与正则表达式不匹配,因此在使用正则表达式找到的内容时,您必须将其添加回去。对于PHP5.3和更高版本,您可以将before_needle参数与strstr一起使用:
// fastest way
echo substr($text, 0, strpos('.', $text));
strstr( $youstringhere, ".", true );
我们在这里是非常基本的xDsory,但我需要知道人们是怎么说的:),请看explode和strpos这就是我喜欢stackoverflow的原因。你试过了吗?人们不会说任何你在手册中找不到的东西,那不应该是$matches[0]?@canutes关于第一个捕获的片段(模式中的参数之间)在
$matches[1]中
--在这里,由于括号环绕整个模式,因此,$matches[0]
和$matches[1]
将包含相同的内容regex,就像电锯一样,在某些情况下非常有用。对于这样一个简单的过程,它有点过火。一个人必须学习基本字符串来自己解决这些问题。regexp对他没有好处。没错,regex在这里过火了。但我认为这是一个扩大答案范围的好答案。All其他(substr()
,strstr()
,explode()
等)已经提到(有些甚至多次)。
strstr( $youstringhere, ".", true );