2016-07-14 20 views
1

私は、次の形式で複数行のテキストを持っています。regexを使用して文から複数の文字列値を抽出する方法は?

{user}様こんにちは、{y}日以上アクティブになっているため{x}ポイントが獲得されました。

Regexを使用してこれらの特定の変数を抽出するにはどうすればよいですか?

-

こんにちはジョン、あなたはより多く日間有効であることのため10個のポイントを授与されています。

抽出すると、上の行からjohn(user)、10(x)、2(y)を取得する必要があります。

p.s.私はjavaを使用しており、正規表現を使用してそれを行う必要があります。

+0

あなたはregexを使用することに拘束されていますか?私はそれを使用してそれを行うことができ、あなたはそれから欲しいデータを取得します。 –

+0

'Hello([^、] +)' - 最初のグループには名前が含まれています。他の人にも同じことをしてください。文字列の作成を制御できれば、regexの使用をお勧めしません。 – Maroun

+1

'Hello(\\ w +)、あなたは(\\ d +)日以上のためにアクティブであるために(\\ d +)ポイントを獲得しました – anubhava

答えて

2

次の正規表現で行くことができる:

/Hello (\w+), you have been awarded (\d+) points? for being active for more than (\d+) days?\./ 

は、私は、彼らが単数ことが起こるだけの場合には、「ポイント」と「日」の複数形の後に疑問符が含まれていることに注意してください。

また、ユーザー名が単語文字のみで構成されていると仮定しています。そうでない場合は、\w+を適宜更新する必要があります。

関連する問題