2016-07-06 2 views
-2

私は以下のような年齢データのセットを持っています。正規表現を使用してこの特定の年齢層を取得するにはどうすればよいですか?

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
1,1 
1,2 
1,3 
2,12 
11,13,15 
7,8,12 
12,15 
14,16,17 
15,6 
13,11,10,2 

など...私はRegexを使用して、子供の年齢層を「混在」させようとしています。論理には少なくとも2つのchilden(コンマの付いた行の1つが必要)、10歳未満の1歳以上(最小は1)、少なくとも10人以上の高齢者が10以上(最大17)の組み合わせが必要です。

上記の結果から、私はこれらの行を以下のように返すことになります。

2,12 
7,8,12 
15,6 
13,11,10,2 

解決方法についてアドバイスをいただけますか?事前にありがとう、私は訂正しようとしています。

+2

どの言語ですか? http://stackoverflow.com/questions/12739633/regex-standards-across-languages –

+0

これは[GA用]です(http://stackoverflow.com/questions/38229345/regular-expression-not-working-in-google - アナリシス - おそらく - ポジティブ - ルーによる)、それはそこでは機能しません。 RE2はルックアラウンドをサポートしていません。 –

答えて

2

^(?=.*\b[1-9]\b)(?=.*\b1[0-7]\b)[0-9]+(?:,[0-9]+)+$ 

RegEx Demo

  • 10-17
  • ([1-9])試合数との間1-9と他の間の2つの数字の1をアサートする2つの先読みがあります。これは、19との間である必要があります。
  • 1[0-7]は、正規表現で
  • [0-9]+(?:,[0-9]+)+10間及び17は中央に1又はそれ以上のカンマ区切りの番号を一致させるためであるべきである番号と一致します。
+0

こんにちは@anubhava数字が逆の場合、残念ながらこれはキャプチャされません。すなわち15,2。データセットははるかに大きく、Googleアナリティクスに取り込まれたものだけを反映しています。私はそれを注文に関係なく見なければならない。私は質問を更新し、それがチャレンジをさらに説明するのに役立つことを願っています。ご協力ありがとうございました。 –

+1

それは完璧です、私はちょうど最初のグループは9歳以下でなければならないので、1つの微調整をしたので、私は 'または10'を削除しました。 [0-9] +(?:、[0-])\ b)(?=。* \ b1 [0-7] \ b) 9] +)+ $ ありがとうございました! –

+0

ok回答が正しかった。 – anubhava

0

あなたは

\b\d,1[0-7]\b 

でそれを行うことができますが(最古に最年少)年齢は、常にソートされている提供しました。

0の年齢は、

\b[1-9],1[0-7]\b 

への変更を許可されていない場合は、カンマおよび範囲0-7で一桁続く1続く一桁をチェックします。

See it here at regex101

あなたの要件を満たすために、この正規表現を使用することができます
+0

あなたは新しい質問をしましたが...あなたはこれを試しましたか?先読みはありません。もっとシンプルなものを見つけることはできません。 – ClasG

+0

こんにちは@ClasG - 私はこれを試してみました。表現が素敵でシンプルなので、はるかに良いでしょうが、残念ながらデータは常に最年少から古いものにソートされるわけではありません。正規表現はそれをキャプチャしません。私は、[このリンク](http://stackoverflow.com/questions/38229345/regular-expression-not-working-in-google-analytics-possibly-due-to-positiveから)で動作する狂ったソリューションで終わった-loo?noredirect = 1#comment63888417_38229345) –

+1

OK、それを得る。それで簡単な解決法は、あなたが見張りを扱うことができないなら、それをもう一度チェックする代替を加えることです - '\ b(?:\ d、1 [0-7] | 1 [0-7]、 \ d)\ b' - [ここでregex101](https:// regex101。com/r/sK3gA4/3) – ClasG

関連する問題