繁体   English   中英

如何在两列中进行预匹配?

[英]How to do a preg-match across two columns in a row?

我有一段工作代码,可以从MySQL表中获取大量材料,搜索模式,然后订购并打印结果。 到现在为止还挺好。

但是现在我需要在结果的两个字段之间做类似的事情。 因此,下面的代码在“文章”列中搜索模式,但我需要它在“文章”列或“定义”列中找到匹配项。 如果有一个命中,我希望代码将行添加到$ matches并从那里开始。 (换句话说,我希望它像下面的代码一样,将“论文”和“定义”一起对待,而不仅仅是“论文”。)

我尝试了几种我认为可能以这种方式表示“或”的方法,但是没有任何效果。 任何帮助将非常感激。

// create empty array

$query = "SELECT shortword,word,essay,definitions FROM lexicon;";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
$num_results = mysql_num_rows($result);

$results = array();
for ($i = 0; $i < $num_results; $i++) {
    $row = mysql_fetch_array($result);
    if (preg_match_all("/(\<i\>U\<\/i\>|U) $episodenav\.[0-9]{1,4}\D/", $row["essay"], $matches)) {
        foreach ($matches[0] as $match) {
            $match = ltrim(strip_tags($match), "U ");
            // array pseudo key is the float value of $match
            // add '_key' member for usort()
            $row['_key'] = floatval($match);
            $results[] = $row;
        }
    }
}

你这样尝试过吗?

$newtext=   $row["essay"]." ".$row["essay"]

if (preg_match_all("/(\<i\>U\<\/i\>|U) $episodenav\.[0-9]{1,4}\D/", $newText, $matches)) {

暂无
暂无

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

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