0

提供された文字列を$contentsに一致させる必要がある次のコードがあります。$ contents変数には、file_get_contents()関数を介して保存されたWebページのコンテンツがあります。

if (preg_match('~<p style="margin-top: 40px; " class="head">GENE:<b>(.*?)</b>~iU', $contents, $match)){
                    $found_match = $match[1];
                }

上記のWebページの元の文字列は次のようになります。

<p style="margin-top: 40px; " class="head">GENE:<b>TSPAN6</b>

Webページで見つかった文字列「TSPAN6」を(。*?)から$match[1]に一致させて保存したいと思います。ただし、マッチングは機能していないようです。何か案は?

4

2 に答える 2

1

残念ながら、あなたの提案はうまくいきませんでした。

htmlコードを数時間調べた後、正規表現のコロンの直後に空白があることに気付きました。そのため、コードスニペットは次のようになります。

$pattern = '#GENE: <b>(.*)</b>#i';
preg_match($pattern1, $contents, $match1);
if (isset($match1[1]))
{
    $found_flag = $match1[1];
}
于 2012-09-20T07:16:31.037 に答える
0

これを試して:

preg_match( '#GENE:<b>([^<]+)</b>si#', $contents, $match );
$found_match = ( isset($match[1]) ? $match[1] : false );
于 2012-08-10T23:24:36.720 に答える