繁体   English   中英

在PHP中需要一些正则表达式的帮助

[英]Need help with some regular expressions in PHP

我需要将一些简单的eregi正则表达式移植到preg_match以便进行PHP 5.3 / 6.0编译。

由于我对正则表达式的移植技巧不太自信,因此我需要一些帮助...

#1

旧版本:

if( eregi('foo',$myVar) ) {
    $aresult = explode('/',stristr($myVar,'foo'));
    $aversion = explode(' ',$aresult[1]);
}

新版本:

if( preg_match('/Foo\/([^ ]*)/i',$myVar,$matches) ) {
    $aversion = $matches[1];
}

#2

旧版本:

if( eregi('bar',$myVar) && ! eregi('rv:[0-9]\.[0-9]\.[0-9]',$myVar)) {
    $aresult = explode('/',stristr($myVar,'bar'));
    $aversion = explode(' ',$aresult[1]);
}

新版本:

//Not done yet need help

您的第二个代码段与第一个代码段几乎相同,只是有额外的条件。 我猜测您的实际代码(或您希望它的工作方式)与所提供的代码有些不同? 如果是这样,请您详细说明这些差异?

无论哪种方式,您的#2看起来都可能与#1相似。

if (preg_match('~bar/([^ ]*)~i', $myVar, $match) && ! preg_match('/rv:[0-9]\.[0-9]\.[0-9]/', $myVar)) {
    $aversion = $match[1];
}

使用~作为分隔符似乎很奇怪; 原因是正则表达式包含最常用的定界字符( / ),因此可以使用替代方法而不是像在问题中那样转义斜线。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM