ホームページ  >  記事  >  バックエンド開発  >  テーブルの内容を抽出するための PHP 正規表現

テーブルの内容を抽出するための PHP 正規表現

WBOY
WBOYオリジナル
2016-06-13 12:08:211483ブラウズ

Php でテーブルの内容を抽出するための正規表現を検索します
文字列は次のようになります:
$s1 = 'ここに説明文字 ( ) がありますf4f4aaed262ad0e635fc8c948e2424c2a34de1251f0d9fe1e645927f19a896e814df0d07da52140a9eed1e6572c402f7AAAAA b90dd5946f0946207856a8a37f441edf14df0d07da52140a9eed1e6572c402f7 BBBBB b90dd5946f0946207856a8a37f441edf 2688fc03e5140d9bef12bef73424f836f16b1740fad44fb09bfe928bcc527e08';

$s2= 'ここに説明文字があります ( )563529c1438d3340db924434e756d46aa34de1251f0d9fe1e645927f19a896e8b51916cd20dbb4d30b6f41a38e6bc1ed7e1451fb61631c380345fe1d738d7652 0c10a811bac4de0d5ac6ab6c83d2aac1 b96cac025db4031319c29e1eb68f19d60270ea406e83044e5b95e23270c35ff95b90dd5946f0946207856a8a37f441edffd273fcf5bcad3dfdad3c41bd81ad3e5f16b1740fad44fb09bfe928bcc527e08';

の文字を変更したいと思っています表の前面: ここに説明文字 ( )' と td の間の文字列が抽出されます
'BBBBB ', 'AAAAA', ' ', 'b96cac025db4031319c29e1eb68f19d60270ea406e83044e5b95e23270c35ff95'
フォーム td の途中の内容は複雑になる可能性があるので、さまざまな状況を考慮してみてください。


それを明確に説明できませんか?常連の専門家の皆様、アドバイスをお願いします!

-----ソリューションのアイデア----------------------

$s1 = '这里是描述字符( )<table name="optionsTable" cellpadding="0" cellspacing="0" width="100%"><tr><td width="25%">AAAAA </td><td width="25%"> BBBBB </td></tr></table>';<br />$s2= '这里是描述字符( )<table name="optionsTable" cellpadding="0" cellspacing="0" width="100%"><tr><td width="50%"><img src="2061.png" style="vertical-align:middle;" /> </td><td width="50%"> <sub>0</sub></td></tr></table>';<br />//匹配table前面的内容<br />preg_match_all('/(.+?)<table[^>]+?>/i',$s1,$p1);<br />echo "<pre class="brush:php;toolbar:false">";<br />print_r($p1[1]);<br />echo "
";
//匹配td里面的内容
preg_match_all('/]+?>(.+?)<\/td>/i',$s2,$m2);
echo "
";<br />print_r($m2[1]);<br />echo "
";

//$p1[1]和$m2[1]就是匹配到的内容
------解決策のアイデア----------------------
<br /><?php<br /><br />$s1 = '这里是描述字符( )<table name="optionsTable" cellpadding="0" cellspacing="0" width="100%"><tr><td width="25%">AAAAA </td><td width="25%"> BBBBB </td></tr></table>';<br /><br />$s2 = '这里是描述字符( )<table name = "optionsTable" cellpadding = "0" cellspacing = "0" width = "100%"><tr><td width = "50%"><img src = "2061.png" style = "vertical-align:middle;" /> </td><td width = "50%"> <sub>0</sub></td></tr></table>';<br /><br />//换个思路吧,不要提取而是删减<br />//包括table/tr标签就再加2条<br />$replace = array('/<\s*td.*>/U', '/<\s*\/td\s*>/U');<br /><br />echo preg_replace($replace, '', $s1);<br />echo '<br />';<br />echo preg_replace($replace, '', $s2);<br /><br />

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。