doubijiao2094 2012-08-29 14:26
浏览 24

PHP正则表达式使用组来匹配单词(preg_match)

I'm trying to match 2 words in a regular expression using preg_match. This is a simplified version of my statement with the actual code below. The expression doesn't work when I use 2 groups in the expression. Please help.

If preg_match(string or string) and (string or string) { do this }

$subject = 'over £200 and under £300';

$minPrice = 0;
$maxPrice = 10000;

if (preg_match_all( '#£.*?([0-9]+)#i', $subject, $priceMatches)) {
    foreach ($priceMatches as $price) {}
     if (preg_match('/(over|above)(under|below|beneath)/i',$subject)) {
        $minPrice = $price[0];
        $maxPrice = $price[1];
        $priceOrder = "#!No=0&Nf=P_Price|BTWN+".$minPrice."+".$maxPrice."&N=&side=&Ns=P-SYSTEM_Price_Revenue|1&perPage=12";
        echo 'MIN PRICE ' . $minPrice . "
";
        echo 'MAX PRICE ' . $maxPrice . "
";

    } else {
   echo "no e found";
    }
} else {
   echo "no e found";
}

?>

  • 写回答

1条回答 默认 最新

  • dst3605528 2012-08-29 14:38
    关注

    If the order of what you are always matching will always be the same, you simply need to change your regular expression to:

    /(over|above).*(under|below|beneath)/i
    

    This will allow for anything between the two words. Previously, your regular expression was expecting the words to be back-to-back (which wasn't the case).

    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?