English 中文(简体)
egi
原标题:eregi to preg_match

I am using a lib which uses

$pattern = "LIMIT[^w]{1,}([0-9]{1,})([,]{0,})([0-9]{0,})";
        $replacement = "";
        eregi($pattern, $query, $regs);
        $query = eregi_replace($pattern, $replacement, $query);

        if($regs[2])
            $query = str_ireplace("SELECT ", "SELECT TOP ".$regs[3]." ", $query);
        else
            {
            if($regs[1])
                $query  = str_ireplace("SELECT ", "SELECT TOP ".$regs[1]." ", $query);
            }

I change some part of the code to

$pattern = "/LIMIT[^w]{1,}([0-9]{1,})([,]{0,})([0-9]{0,})/i";
        $replacement = "";
        preg_match($pattern, $query, $regs);

但现在我用错误信息说,“未明确抵消:2”和“未界定的抵销” 1)

我认为,从效忠到先验,应该容易......。

最佳回答

<代码>preg_match或preg_replace没有问题。 页: 1

You get this error when $query doesn t match at all (e.g. $query="SELECT foo FROM bar"). Then $regs is an empty array, so accessing $regs[2] results in an error since there are no elements in it to begin with.

I d suggest using count($regs) to see whether to even do the $regs[2] thing.

$query="SELECT asdf FROM foo";
$pattern = "/LIMIT[^w]{1,}([0-9]{1,})([,]{0,})([0-9]{0,})/i";
$replacement = ""; 
preg_match($pattern, $query, $regs);
$query = preg_replace($pattern, $replacement, $query);


if( count($regs)>=0 ) {
    if($regs[2])
    // ... etc the #$egs[2] $regs[1] code here.
}
问题回答

暂无回答




相关问题
Uncommon regular expressions [closed]

Recently I discovered two amazing regular expression features: ?: and ?!. I was curious of other neat regex features. So maybe you would like to share some tricky regular expressions.

regex to trap img tag, both versions

I need to remove image tags from text, so both versions of the tag: <img src="" ... ></img> <img src="" ... />

C++, Boost regex, replace value function of matched value?

Specifically, I have an array of strings called val, and want to replace all instances of "%{n}%" in the input with val[n]. More generally, I want the replace value to be a function of the match ...

PowerShell -match operator and multiple groups

I have the following log entry that I am processing in PowerShell I m trying to extract all the activity names and durations using the -match operator but I am only getting one match group back. I m ...

Is it possible to negate a regular expression search?

I m building a lexical analysis engine in c#. For the most part it is done and works quite well. One of the features of my lexer is that it allows any user to input their own regular expressions. This ...

regex for four-digit numbers (or "default")

I need a regex for four-digit numbers separated by comma ("default" can also be a value). Examples: 6755 3452,8767,9865,8766,3454 7678,9876 1234,9867,6876,9865 default Note: "default" ...

热门标签