2017-07-17 12 views
-1

ユーザーからデータを取得するための単語テンプレートがあります。提供される値は、正規表現を使用して抽出する必要があります。変数の先頭と末尾の文字列を含む正規表現のマッチンググループ

located in ________________ County 

ユーザーがデータでいっぱいになるとそう、出力は_先頭と末尾の文字の可変数を持つことができます:テンプレートのセクションには、次のようになります。例:

目的は、上記の例のいずれかから正規表現を使用してサンディエゴを抽出することです。

+1

ようこそスタックオーバーフロー!あなたの現在の正規表現はどのように見えますか?あなたは特定の場所でハングアップしていますか?それとも、どこから始めるのか分かりませんか? – sniperd

+0

これはおそらく、あなたがどの言語で指定するのを助けるか、それを実装するのを助けるでしょう。(デフォルトの正規表現の構文はプログラム/言語によって異なります) – Jay

+0

私は先を見て背後を見てみました。残念ながら、ダッシュの数が変わるため、これは機能しません。私はマッチンググループを使用する必要があると仮定します。しかし、どこから始めたらいいのか分かりません。 言語についてわかりません。私はデータを抽出するツールを使用しています。そして、彼らがデータを抽出する方法の1つは正規表現です。私は基本的な言語が何であるか分かりません。もし私が推測するなら、基本的な言語はC# – Hootan

答えて

0

_+([^_]+)_+

一致するグループは、ジェイの答え上の変形として_

+0

だと言うでしょう。これは、_sと同じパターンを持つドキュメントの他の部分があるので、これは動作しません。また、私は抽出されたテキストの_sを除外したいです – Hootan

+0

'(' ')'で定義されているように最初の一致するグループを抽出するだけであれば除外されます。あなたが使用している言語を私に教えたら、それをする方法を教えてください... 代わりに、結果から_をトリミングできます。 テキスト内の迷子_による誤った一致について...はい、それは問題です。おそらく取引を破る人。 – Jay

+0

私がコードでこれをやっていたら、もっと簡単になります。この正規表現は正規表現抽出機能を持つツールに提供する必要があります。 – Hootan

0

の任意の量との間には何もマッチします。先読みと後ろ向きを使用して_をキャプチャしないでください(1つ以上の_が無関係な情報であることが判明しました)。より排他的なキャプチャグループを使用して、英数字、スペース、およびタブ文字のみを声に出します。これは、同じ文章とテキスト行にある_の間のテキストをキャプチャします。入力が有限の長さの場合、を{1,#}に置き換えることができます。ここで、#は入力の長さです。それを超えてフィルタを改善するために

(?<=_)[A-Za-z0-9 \t]+(?=_)

が有効なグループからの浮遊グループを伝えるための方法のより多くの知識が必要です。

関連する問題