2012-02-04 14 views
-2

分割の抽出に問題があります。たとえば、の状態を抽出するためにどのような正規表現を書くことができますか? 評価はの駐車場はですか?私はそのレストランの評価を5.0にする正規表現を書くことができるようにしたい(後に書かれた星評価なし)。私は特定の単語の前または後に値を取得する方法を解答に含めずに知りません。異なる属性の正規表現

+1

どのようなプログラミング言語/ツールをお使いですか?利用可能な正規表現の機能は、使用しているものによって異なります。 http://rubular.com/ ラインが同じであれば、それは価値がある何のため – mgibsonbr

+0

は、私はちょうど私がこのようなサイトでテストすることができます正規表現をしたいですまたは少なくとも正しい順序で)。私は1つの巨大な正規表現を構築する代わりに、各行に複数の/単純な正規表現を使用することをお勧めします。 – user807496

答えて

0
(\d.\d) star rating\n.*?\n.*?\n.*?\n[^,]*, ([A-Z]{2}).*Parking: (Yes|No) 

そして1、2及び3

+0

これだけ作品を(私はプロジェクトのためにこれを理解する必要があります)(: –

+0

特定の単語の後にどのように言葉を得ることができるか教えてください。例:Neighborhoodの値が必要な場合、行全体ではなく韓国語のみを表示するように正規表現を書くにはどうすればよいですか? – user807496

0

まずキャプチャグループを使用して、私はあなたのオリジナルの正規表現がどのように動作するか表示されません。括弧内の式は、通常、キャプチャグループを表しているため、テキスト内の式と一致します。もちろん、あなたがそれらをエスケープ、場合を除き:

(\(\d{3}\)\s\d{3}-\d{4}) 

第二に、あなたはキャプチャグループがどのように動作するかに気づいていないよ場合には、あなたがそれらを使用する方法については、お使いのツール/言語のドキュメントを検索する必要があります。ジョーイの答えでそれらを試してください、あなたは大丈夫でしょう。 JavaScriptで

は、例えば、あなたは配列のインデックスのようにそれらにアクセス:

var exec = /yourregex/.exec("yourstring"); 
var group1 = exec[1]; 
var group2 = exec[2]; 
etc 

Hereは、一般的には、グループをキャプチャするにいくつかの情報です。 Rubyを使用しているというご意見をお待ちしておりますので、this tutorialも参考になるかもしれません。私はRubyに慣れていないので、もっと情報を提供することはできませんが、私が投稿したリンクはあなたが始めるのを助けるはずです。

更新:いくつかのより多くのGoogleをした後、私は最終的に構文が見つかりました:同じ正規表現で複数のグループが存在する場合

all,g1 = *(/Neighborhood\:\ (\w+)/.match("Neighborhood: Koreatown")) 
# all = "Neighborhood: Koreatown" 
# g1 = "Koreatown" 

は、より多くの変数を使用してください。

+0

'Neighborhood \:\(\ w +)' – mgibsonbr

+0

"Match result"は完全一致を示しますが、 "Match groups"は '1 'を表示します。コリアタウン。つまり、マッチの最初のキャプチャグループを抽出した場合は、「Koreatown」という文字列が含まれます。 – mgibsonbr

+0

ああ、私はあなたの質問を入れた後にマッチグループを見る。しかし、それでは? – user807496

1

あなたはそれを完全に言っていませんでしたが、あなたはscreen scrapingのように聞こえます。そのような場合は、既存のパッケージを使用してデータにアクセスし、を入力し、を使用して詳細を取得することができます。 Pythonを使用している場合、私は近代的な(そしてそれほど近代的ではない)Webページの全てを扱うので、Beautiful Soupをお勧めします。