ホームページ >バックエンド開発 >PHPチュートリアル >PHP は次の状況で正規表現を使用しますか?

PHP は次の状況で正規表現を使用しますか?

WBOY
WBOYオリジナル
2016-06-23 14:22:13954ブラウズ

プロジェクトでは次の 2 つのケースが発生する可能性があります。


最初のタイプ:
......sadfa:
& & lt; a ID = "j_wsad" href = "javascript: void (0)" & gt; 1235db79b134e9f6b82c0b36e0489ee08ed

SLDKJLSKDFJ.....

2 番目のタイプ:
.....SADFA:

SLDKJLSKDFJ.....

お願いします英雄たち、正規表現を使って表現する方法はありますか?
思ったこと:
preg_match("/SADFA:.*?(d+)/is",$text,$reg);
このようにすると、結果は javascript:void(0) の 0 になります、
変更します
preg_match("/SADFA:.*?([1-9]d*)/is",$text,$reg);
赤い部分の数字は取得できますが、赤い部分は 0 です。私にできることは何もありません。助けてください。 。 。


ディスカッションに返信(解決策)


preg_match_all() を使用します

preg_match_all() を使用します

最初のケースでは 2 番目の番号を取得したいです

2 番目のケースでは最初の番号を取得したいです数字、

正規表現を使いたいのですが、書き方が分かりません

<?php$s1='........SADFA <a id="J_WSAD" href="javascript:void(a10)">123</a>SLDKJLSKDFJ.........';$s1=strip_tags($s1);preg_match_all("/\d+/",$s1,$reg);print_r($reg);?>

$s =<<< TXT第一种:........SADFA:    <a id="J_WSAD" href="javascript:void(0)">123</a>SLDKJLSKDFJ.........第二种:........SADFA:                                               0SLDKJLSKDFJ.........TXT;preg_match_all('/SADFA:.+[>\s](\d+)\b/sU', $s, $r);print_r($r);
Array

(

[0] => Array

(
) [0] => ; SADFA:

e8b17d4a62692a7d99aa96e4b76344e4123


[1] = & gt;

)


上の2人に感謝します。膨大な量のデータがあるため、Strip_tags がもう一度処理されるかどうか、効率に影響するかどうかはわかりません。試してみます。とにかく、ありがとう、baoxiaohua

個人的には、xuzuning モデレーターの方法の方が好きです。まさに私が探していたものです。思いつきもしませんでした。本当にありがとうございます

最終的には /SADFA: .*?[ >s](d+)/ を使用しました。は、欲張らないマッチングを省いても問題ないかな(笑)。 。

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