2017-01-27 8 views
1

私はアイテムのリストからn個の要素に一致するようにしようとしています:私は、文字列の中に存在するどのように上記のリストから項目の多くをチェックしたい正規表現のリストからn個のアイテムを照合する方法は?

one,two,three,four,five,six,seven,eight,nine,ten,eleven,twelve,thirteen,fourteen,fifteen,sixteen,seventeen,eighteen,nineteen,twenty,thirty,forty,fifty,sixty,seventy,eighty,ninety,hundred,thousands,million,billion 

。どのように達成することができますか?

例えば、私はどうか、文字列がリストから任意の6が含まれていることを確認したい:

(one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen|twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|hundred|thousands|million|billion){6} 
+0

私の編集を見てください。 :) – learner

+1

あなたはどの言語を使用していますか? –

+1

私はこれが正規表現の仕事だとは思わない... –

答えて

3

あなたはちょうどあなたが一致したくないトークンを消費しますワイルドカードを追加する必要があります。

(\b(?:one|two|three|four|[...]|thousands|million|billion)\b.*){6} 

このようにして、検索されたトークンの6回の出現と、その間にあるものとを一致させます。

単語の部分(「正直」で「1」)が一致することを避けるために、単語境界(\b)も追加しました。

アンカーを使用しても、余分なトークンが.*によって消費されるため、6つ以上の検索トークンが存在しないことを確認することはできません。ただし、検索されたトークンが6つ以下の場合は一致しません。

Regex101礼儀Rad Lexus

+2

ちょうどこれを正確にテスト:)→https://regex101.com/r/3IvEWf/1 – usr2564301

+0

@RadLexus nice、私は私の答えにリンクを含める。 '\ b'を使うのも良い考えです。 – Aaron

+0

助けてくれてありがとう。あなたが私のような初心者のために何か説明を加えることができればもっと良いでしょう。 – learner

関連する問題