0

私は次のコードを解析しようとしています:

<td class='postac'>Actelsar </td>
<td class='postac'>tabl. 80 mg 28 tabl.</td>

入力は、 ""タグの間のテキスト( "<"記号なし)で<td class='postac'> </td>、大文字で始まる必要があります。

正規表現:/<td class=\'postac\'>^[A-Z]+([^<]*)$<\/td>/s

上記のコードは機能しません。ご協力いただきありがとうございます。

4

3 に答える 3

4

上記のコードは機能しません

これは、何らかの理由で正規表現の途中にa$^記号を配置したためではありません(これは、文字列/行の終わりと始まりを対応して意味します)

これはあなたが望むことをするはずです:

/<td class=\'postac\'>([A-Z][^<]*)<\/td>/s
于 2013-01-08T22:32:43.617 に答える
2

HTMLパーサーを使用して、正規表現ではなくHTMLを解析します。これは、DOMDocumentとDOMXPathによって簡単に実行できます。

$doc = new DOMDocument();
$doc->loadHTML($str);
$xpath = new DOMXPath($doc);
$nodes = $xpath->query('//td[@class="postac"]');
$result = array();
for($i=0;$i<$nodes->length; $i++){
    $text = $nodes->item($i)->textContent;
    if(isset($text[0])&&ctype_upper($text[0])) $result[]= $text;
}

動作中のコードを参照してください。

于 2013-01-08T22:33:21.723 に答える
0

/<td class=\'postac\'>([A-Z]+.*)<\/td>/一致しますが、表には一致Actelsarしません。80mgの表。

于 2013-01-08T22:36:26.717 に答える