2016-10-01 4 views
1

2つのグループが必要です - 1つは単語と2番目の数字を抽出するためのものです。例:単語と数字を別々のグループに取り込むための正規表現

['| Sofia   | 300'] 

を抽出する必要があります:

Group 1 - Sofia; Group 2 - 300 

私の正規表現の試み:

([a-zA-Z]+[ ]*[a-zA-Z]+)([0-9]+) 

私はこれが一致しない理由として理解していません。私は今30分の読書をしてきましたが、問題のフレーズを正しく綴ることができないかもしれませんが、解決策を見つけることができません。ここでの私の考えは、それぞれの括弧のセットがグループを保持しているということです。それらの中の正規表現は、単独でうまくいくようですが、2つのグループを捕まえようとすると失敗します。明らかに、私は複数のグループをキャプチャすることについて何か重要なことを見逃しています。

+1

は2つの例と期待される出力を与えます –

答えて

2

の文字が「ソフィア」と「300」の間に一致しないため、一致しません。これは "Sofia300"と一致しますが、 "Sofia 300"または "Sofia | 300"とは一致しません。これを試してみてください:

(\w+ *\w+).*?(\d+) 

は(私は簡潔にするための代わり[a-zA-Z]\w\d代わりの[0-9]を使用しています。)

+0

正規表現は()内のものだけとは一致しません。了解、ありがとう。 – Alex

2

以下は、あなたのグループを与える:

/([a-z]+).*\|\s([0-9]+)/i 

Example

関連する問題