我正在看几个函数,要么在两个字符串之间得到字符串,要么在特定字符之间取消字符串,但我在这里遇到困境所以请帮助我。
字符串是
You are currently using plugin version 8.0.3 Stable - 11-08-2013
因为有几个插件可以使用,版本和日期可能会改变。 我需要的只是从这个字符串返回8.0.3,但我永远不知道它是8.0.2还是8.0.25。或者10.5.33。
因此,而不是猜测案例,单词的顺序,爆炸字符串,空格或在版本之前和稳定之后看
我宁愿拥有的是: 获取第一个点之前和之后的数字,并返回带点的字符串。
注意:我不想在版本和稳定之间进行搜索,已经有了,他们的订单可能会被撤销,因此我要求与DOTS匹配 任何帮助表示赞赏。
答案 0 :(得分:1)
这应该有效:
$str = 'You are currently using plugin version 8.0.3 Stable - 11-08-2013';
$start = strpos($str, '.')-1;
$end = strrpos($str, '.')+2;
$version = substr($str, $start, $end - $start);
答案 1 :(得分:1)
你应该在这里使用正则表达式
$str = 'You are currently using plugin version 8.0.3 Stable - 11-08-2013';
preg_match('/(\d+\.\d+\.\d+)/',$str, $match);
$match[1]
将包含8.0.3
,并且仍适用于10.25.24
或32154.0.165741354
。
答案 2 :(得分:0)
您可以使用正则表达式来匹配您需要的内容。
$str = 'You are currently using plugin version 8.0.3 Stable - 11-08-2013';
preg_match('/version (.*?) Stable/',$str, $match);
echo $match[1];
答案 3 :(得分:0)
您可以使用正则表达式从该字符串中获取版本号:
$str = 'You are currently using plugin version 8.0.3 Stable - 11-08-2013';
preg_match('/[0-9\.]+/',$str, $match);
echo $match[1];
答案 4 :(得分:-1)
function findit( $mytext , $starttag , $endtag )
{
$posLeft = stripos( $mytext , $starttag )+strlen( $starttag );
$posRight = stripos( $mytext , $endtag , $posLeft+1);
return substr( $mytext , $posLeft , $posRight-$posLeft );
}
第一个参数是文本var,第二个是开始文本,第三个是结束文本