1

そのため、正規表現はしばらくの間、私の存在の悩みの種でした。私はそれを理解する途上にあると感じていますが、私はただ非常にイライラしています. 要するに:

PHP経由で次のWebサイトからデータをスクレイピングしようとしています:

http://magicseaweed.com/Asbury-Park-Surf-Report/857/

ページの上部にある太字の波高を抽出したい (現時点では 3-5 と表示されている)。これが機能する理由を理解しています:

preg_match('/<div class="msw-fct-ccd msw-sr-details span3"> <h3> <span>(.*)    
<small>ft<\/small>   <\/span> <div class="msw-fct-ccr msw-sr-rating">/', $pageMagic,
$height);

しかし、なぜこれができないのか理解できません:

preg_match('/<div class="msw-fct-ccd msw-sr-details span3"> <h3> <span>(/d-/d)|(/d)    
<small>ft<\/small>   <\/span> <div class="msw-fct-ccr msw-sr-rating">/', $pageMagic,
$height);

私の考えでは、論理的に言えば、数字、ダッシュ、次に別の数字、または 1 つの数字を探す必要があります。http://gskinner.com/RegExr/で正規表現をテストしたところ、3 ~ 5 でした。前もって感謝します!

4

1 に答える 1

2

あなたのスラッシュは間違っています。そのはず:

(\d-\d)|(\d)

ちなみに、これを次のように単純化できます。

\d(-\d)?

...ただし、これによりキャプチャ グループが変更されることに注意してください。私はあなたのための演習としてその修正を残します:)

于 2013-03-19T22:16:28.060 に答える