今日の主なタスクは、ニュース、調査レポート、その他の問い合わせの最新のアップロード時間を現地時間と比較して、1時間を超えているかどうかを確認することであり、それをphpでプログラムしました
最初は、ホームページに処理が必要なテキストに関する情報があるのですが、長い間探していますが、探しているテキストに関する情報が見つかりません。最初は愚かにも正規表現を使用して html コードのソースを処理していましたが、後でそれが私自身の問題であることがわかりました。その html ソース コードにはニュース コードが含まれていなかったことがわかりました。その後、Chrome を使用してページを検索し、最終的にニュース ページのソースの URL を見つけました。次に、URL を処理します。
URLを処理する際、正規表現を直接使って処理していたのですが、処理中に様々な問題が発生しました。まず、時間の変化に応じて時刻文字列の長さが異なる可能性があるため、最初はどう対処すればよいのかわからず、長い間試しました。その後、.*を使用してテキストを一致させてみました。 , しかし、PHPのデフォルトは欲張りマッチングなので、1つの一致はすべてに一致することを意味します。 そこで、解決策を探しましたが、長い間検索しても見つかりませんでした。
その後、クラスメートの 1 人に尋ねたところ、正規表現はデフォルトで貪欲マッチングを使用しており、この問題はモードを非貪欲マッチングに変更することで解決できると教えてくれました。
打个比方说,有一段html:<div>asdef<em>ccda</em>aae<br>sdc</div><div>asdef<em>dfge</em><br>sdc</div>。我想通过preg_match_all利用规则<div>\s*<br>将<div>asdef<em>ccda</em>aae<br>匹配出来,但是PHP好像并没有非贪婪模式的选项,导致匹配出来的是内容是<div>asdef<em>ccda</em>aae<br>sdc</div><div>asdef<em>dfge</em>,因为贪婪模式匹配到了后面的<br>了
/正则/U 参数U,用书上的原话是,不再贪婪
そして私はついに問題を解決しました