あなたはこれを使用することができます。
注:論文でフラグがオンである複数行のデモ(^
を意味するラインの開始と一致し、$
は、行の末尾に一致する)
\bBella und Chris kaufen(?:(?: (ein Stück Käse|eine Packung Butter|ein Brot)(?=,| und|$)(?!.*?\1)(?: und|,?)))+\b
(demo)
場合、またはあなたは繰り返しフレーズを懸念していません。入力のソースに応じて、彼らは心配
\bBella und Chris kaufen(?:(?: (ein Stück Käse|eine Packung Butter|ein Brot)(?=,| und|$)(?: und|,?)))+\b
(demo)
ではないかもしれないが、トラブルが、それはあなたが唯一の私たちに文章の断片を示しているに表示されなかったのですか?何が
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);
'B ella und Chris kaufen(?:(ein Brot | StinckKäse|パインバター)(?:$ |、| und)){3} '期待どおりに働く? –
regexpでNLPをやり直すことを勧めています。 –
Helloa @torazaburo、NLPとは何かを解説してください:) –