2017-03-07 16 views
1

はRegex。JavaScriptの文字列処理は、おそらく私は、特定のトラブルに文字列をテストする方法を見つけようとしている

文字列は次のとおりです:「ベラとクリス:は、このようにすることができまたは

「ベラとクリスは、食パン、チーズの作品とバターのパケットを買う」

私に例をみましょうベラとクリスは「パートを買う「トラブルがあることである

」食パン、チーズの作品、バターのパックを購入することは同じで、その他のことができます彼らの位置を変えるなどの異なる場合があります。 「ベラとクリスはチーズの作品、食パン、バターのパックを買う」

か::

「ベラとクリスはチーズの作品、バターのパック、食パンを買って」このような

のように。

var cn = ["Bella und Chris kaufen ", "ein Stück Käse", "eine Packung Butter", "ein Brot"]; 
//User should write like this: control[1][0]+control[1][1]+", "+control[1][2]+" und "+control[1][3] 
//or this : control[1][0]+control[1][1]+", "+control[1][2]+", "+control[1][3] 

私は、ユーザの入力を取得し、文字列を2つの合成条件とオーケーであるかどうかを確認する必要があります。私は正規表現を探して私の扱うことができる問題を-が、1つを見つけるcouln't。

+1

'B ella und Chris kaufen(?:(ein Brot | StinckKäse|パインバター)(?:$ |、| und)){3} '期待どおりに働く? –

+0

regexpでNLPをやり直すことを勧めています。 –

+0

Helloa @torazaburo、NLPとは何かを解説してください:) –

答えて

1

あなたはこれを使用することができます。

注:論文でフラグがオンである複数行のデモ(^を意味するラインの開始と一致し、$は、行の末尾に一致する)

\bBella und Chris kaufen(?:(?: (ein Stück Käse|eine Packung Butter|ein Brot)(?=,| und|$)(?!.*?\1)(?: und|,?)))+\bdemo

場合、またはあなたは繰り返しフレーズを懸念していません。入力のソースに応じて、彼らは心配

\bBella und Chris kaufen(?:(?: (ein Stück Käse|eine Packung Butter|ein Brot)(?=,| und|$)(?: und|,?)))+\bdemo

ではないかもしれないが、トラブルが、それはあなたが唯一の私たちに文章の断片を示しているに表示されなかったのですか?何が

Bella und Chris kaufen ein Stück Käse, ein Brot, eine Packung Butter[...]た後、次の?

それは文字列(THUSなしエンド句読点)の終わりだ場合は、私が書いたように、あなたは正規表現を使用することができます。それは一つの入力で複数のサンプル(行の終わりだ場合。

それは期間だ場合は同様に、あなたはそれがどんな文終わる句読点することができた場合、あなたはどちらの出現を変更することができます[.].に$、最終\bを変更することができます[.!?]へ。


更新:

あなたはあなたの文字列は、各フレーズ

が含まれているかどうかを評価、持っている必要がありますフレーズ

var Snacks = ["ein Stück","Käse|eine Packung Butter","ein Brot"]

コールバック関数を経由しての配列を予想すべきです

var regex = /^Bella und Chris kaufen(?:(?: ((ein Stück Käse)|(eine Packung Butter)|(ein Brot))(?=,| und|$)(?!.*?\1)(?: und|,?)))+\b/gm; 
var picnic = `Bella und Chris kaufen ein Brot, ein Stück Käse und eine Packung Butter 

Bella und Chris kaufen ein Brot, ein Stück Käse, eine Packung Butter 

Bella und Chris kaufen ein Brot, eine Packung Butter und ein Brot 
^ repeats ein Brot twice, as a sample. 

Bella und Chris kaufen ein Stück Käse, eine Packung Butter, ein Brot`; 

// The substituted value will be contained in the result variable 
var result = picnic.replace(regex, function(m) { 
    // loop through Snacks 
    // see if picnic contains each snack element, if it doesn't, append it 
); 

console.log('Substitution result: ', result); 
+0

こんにちは@通常のジョー、あなたの答えをありがとう、私はそれについてもう一つ必要があります、ユーザーがそれらの行方不明の1つを書くとき、これは正しいようにすべきではありません: "ベラとクリスkaufen ein Brot、StückKäse"。私はそれをする方法を知らない:( 私は学ぶが、idkどこ.. –

関連する問題