簡體   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