【发布时间】:2019-05-12 06:49:27
【问题描述】:
我有这样的字符串:
The time is over. # its mean I'm need to die. Please help me. # Ghost. I am here alone. Sorry. # help yourself.
我想获取每个 # 和点 (.) 之间的文本 所以我用这个:
function get_string_between($string, $start, $end){
$string = ' ' . $string;
$ini = strpos($string, $start);
if ($ini == 0) return '';
$ini += strlen($start);
$len = strpos($string, $end, $ini) - $ini;
return substr($string, $ini, $len);
}
$parsed = trim(get_string_between($url, '#', '.'));
echo $parsed;
问题在于该函数仅返回与我的查询匹配的第一个示例。对于我选择的每个查询,我没有任何想法。
在这个示例字符串中它需要返回这个:
its mean I'm need to die
Ghost
help yourself
编辑@Nick Answer
我真正的字符串是这样的:
Text Text Text # Very good. #:* after this come example. Text Text Text #Very good number 2.
您的代码还返回了#:* 之后的字符串,我只需要这些示例:
# Text Text. 或 #Text Text.
在给定的示例中,我需要获取以下文本:
Very good 和 Very good number 2
【问题讨论】:
-
你的问题描述真的不清楚。在每个
#和.之间?这意味着您在第一个示例字符串中的匹配项将是(space)和its mean I'm need to die对吗? -
您希望第二个结果是“Ghost”还是“Ghost。我一个人在这里”?因为即使通过文本循环您的函数,您仍然会遇到所需文本内部有句点的问题。也许更好的方法是找到
#和换行符之间的文本? -
不,我现在只是编辑问题以使其清楚。 @Xatenev 查看编辑
-
@JaredC 否,因为查询文本可以在文本中间。
-
所以你复制了答案here 没有自己尝试任何东西并寻求人们的帮助?我称之为懒惰。
标签: php