如何在一行中的两列之间进行预匹配?

时间:2014-08-12 18:17:14

标签: php regex preg-match

我有一些代码可以从MySQL表中获取大量材料,搜索模式,然后命令并打印结果。到目前为止,非常好。

但是现在我需要在结果的两个字段中做类似的事情。所以下面的代码在&#34;论文&#34;中搜索模式。专栏,但我需要它来找到&#34;论文&#34;列或&#34;定义&#34;柱。如果任何一个是命中,我希望代码将行添加到$ matches并从那里继续。 (换句话说,我希望它能够一起对待&#34;论文&#34;和#34;定义&#34;一起,而不仅仅是&#34;论文,&#34;如下面的代码那样。)< / p>

我尝试了一些我认为可能表示的方式&#34;或者#34;这样,但没有任何效果。任何帮助将不胜感激。

// 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;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

你有没有试过这个?

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

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