2012-03-18 22 views
0

特定のブログのrssに特定の「キーワード」を検索するためにAS3プログラムを作成する必要があります。正規表現の前後に5単語を検索する正規表現

私はString.indexOf()を使ってロジックを書いていますが、これはEXTREMELYです。スケーラブルではありません。私は、キーワードを検索する正規表現を書くことを探していましたが、キーワードの前後に5ワードを返します(検索結果のコンテキストを表示するため)。

重複の一致は無視してもよいとします。

私はこれで唯一の問題はある(?:[a-zA-Z'-]+[^a-zA-Z'-]+){0,5}keyword(?:[^a-zA-Z'-]+[a-zA-Z'-]+){0,5}

を作ってみた:それは完全な言葉を探していません。だから、

速い茶色のキツネにその正規表現を使用すると、怠惰な犬を飛び越え、その後、「」、マッチする犬小屋キーワードの

の彼の昼寝のために行く

速い茶色のキツネは
怠惰な犬を飛び越え、そして
nが犬小屋に彼の午後の昼寝のために行く

"then"が分割されていることに注意してください。

単語全体をどのように一致させるのですか?

キーワードの前後に空白と句読点を追加しようとしましたが、検索テキストの絶対的な開始と終了のキーワードに問題が発生します。

これはどうしてですか?あなたが緑の近くにいるとき

はあなたにもっと精度を与えて、ロフトの程度の変化SCORプランから

これらの新しいウェッジであることを実世界のテキストを取ります。 Photo by Ariel Zambelich/Wiredほとんどのゴルファーにとって、ホールの100ヤード以内でショットの半分以上がプレーされています。この数値は、あなたのゲームに応じて約60〜65%です。それは’セクシーなので、私たちの手にパターやウェッジでより良くなって私たちのほとんどのために、私たちのドライブに15ヤードを追加するよりも私たちのスコアのために多くを行うだろう、 SCORゴルフは最近、SCOR4161と呼ばれるシステムをリリースしました。 4161は、41度のロフトから61度までの1度単位でのクラブの利用可能なロフトを対象としています。その’は、ゴルファーが標準的な9アイアンとピッチングウェッジをアイアンのセットから使用する可能性がある他のウェッジと交換し、130ヤード以上の精度で設計されたクラブセットで置き換えることができる範囲です。 SCOR ’ここでの主張は、鉄とピッチングのウェッジ9で普通に撃ったショットは、5アイアンショットよりもはるかにサンドウェッジショットに似ているということです。したがって、クラブをサンドウェッジのようにデザインすることは理にかなっています。私のテストでは、私は’その考えを確信していませんでした。通常、私は’ 9アイアンとPWをフルショットとして打つ。 ’私は、SCORクラブよりもアイアンセットのクラブと一貫している傾向がありました。しかし、伝統的にウェッジ(49,54,59度)と考えられる3つのロフトに着いたとき、私はSCORクラブに非常に感銘を受けました。アリエル・ザンブリッヒ/ワイヤーによる写真いくつかのことが目立ちました。ウェッジは、伝統的に、クラブに一定量のバウンスを含む。—後縁が前縁よりも低い。これは、あなたがスイングするときにクラブが地面に掘るのを防ぎます。通常、異なる嘘は異なる跳ね角を必要とします:砂や柔らかい芝生の方が高いバウンス、より堅い、より堅い嘘のためのより低いバウンス。 SCORクラブにはバウンスアングルのイノベーション(会社はV-Soleと呼ばれています)が含まれており、さまざまな状況で各クラブを使用することができます。クラブのリーディングエッジは、クラブが掘り下げないようにするために、非常に高いバウンス角—(時には25度以上)を使用して粉砕されます。しかし、ソールの残りの部分は、はるかに低いバウンスで粉砕され、5-9これは、より硬い芝生で良好な性能を与える。私にとっての結果は、多かれ少なかれ問題なくさまざまな条件を処理したような多目的なクラブでした。クラブは大きなフロップショットのための伝統的な砂のくさびとして開くのはかなり容易だが、それは異なる嘘の一貫性によって補完されたものではない。他の思慮深い触れ合いはたくさんあります。クラブのグリップには、親指のための場所が1インチごとに間隔を空けてあります。アイデアは、あなたがクラブを窒息させることによって少し距離を取ることができ、あなたの手の位置に基づいてどれくらい遠くまで打ったかを正確に理解することができるということです。 SCORは、この方法を概説した電子書籍と、結果を書き留めるバッグタグを提供します。それは良いラウンドの鍵となるあなたの距離をより良くコントロールする素晴らしい方法です。全体的に、ここではあまりおしまいではない’があります。クラブヘッドは柔らかく、気分には良いですが、私のテスト中に’が少し傷ついてしまいました。クラブヘッドのデザインは古典的で自信を持っていますが、シャフトやグリップのグラフィックは少し気になります。もっと控えめなものが良いでしょう。しかし、SCORの最も重要なことは、クラブからテクニックまで、ショートゲームに役立つシステムを構築しようとしているということです。ほとんどのゴルファーは感じることによってくさびを購入する—彼らは多分グループを選んで、いくつか試して、彼らがどのようにヒットを見る。 SCORがどのようにあなたのクラブがあなたのゲームに影響を与えるために一緒に来るか考えることを得ることができれば、それはゴルフの世界全体に巨大なサービスをしたでしょう。有線美しいビルド品質。クラブ間での一貫した感触、条件間の一貫したパフォーマンス。ショートゲームの改善に役立つ、オーナーの賢明なアドバイス’中小企業は素晴らしい顧客サービスをもたらします。ちょっとびっくりしたデザインです。クラブは150ドル、5クラブは640ドルを返還します。

答えて

1

ので、定期的な使用の月よりも少し後、私は

ことを見つけます
"((?:[a-zA-Z'-]+[^a-zA-Z'-]+){0,5}\W)(" + keyword + ")(\W(?:[^a-zA-Z'-]+[a-zA-Z'-]+){0,5})" 

が最適です。

私は非単語文字の単語境界に置き換えました。これにより、キーワードの直前/直後に句読点を使用することができます。

4

私は、ActionScriptシンタックスを認識していないですが、次の正規表現は、あなたのために働く必要があります。

'/((?:\w+\W*){5})\b' . $keyword . '\b((?:\W*\w+){5})/' 

はあなたが私はPHPであなたのためのデモを提供することができますしたい場合。

EDIT 元の正規表現(?:[a-zA-Z'-]+[^a-zA-Z'-]+){0,5}keyword(?:[^a-zA-Z'-]+[a-zA-Z'-]+){0,5}は正しく動作します。ただ、

+0

+1完璧、私はそれを考えなかったとは信じられません。おかげで –

+0

あなたは喜んで、うまくいきました。 – anubhava

+0

キーワードの前後に5単語未満の場合、これはうまくいかないと思います。 {5}を{0,5}に変更しました –

2

たぶん、あなたの表現には、この1つの近くが、あなたのニーズに合うようになる前に、キーワードの後に​​\ bを追加する必要があります。

はちょうどあなたがあなたのキーワードの後に​​興味を持っていないか、文字列の末尾に一致する文字を取り除く

(?:[a-zA-Z ' - ] + [^ a-zA-Z' - ] +){0,5}キーワード(?:[^ a-zA-Z'- + | $)(?:[-ZA-Z ' - ] + [^-ZA-Z' - ] *){0,5}

+0

あなたの答えをありがとう。しかし、キーワードの前後に '\ b'を置くというanubhavaの考えは、私の元のregexpで適切に動作します。アイデアのための+1 –

関連する問題