これは、の場合です。分類規則ビルダー(CRB)。 @ Wiktorのコメント付き回答は大丈夫ですが、彼が提供した正規表現に\n
を含める必要はありません。彼の正規表現が仮定していることの1つは、あなたの既存のすべてのキーがすべて9個の値、または少なくともそれらのためのプレースホルダのコロンを持っているということです。実際の私の経験では、これは必ずしもそうではありません。要件が変更されたため履歴データが少なくなる可能性があります。
^([^:]*)(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?(?::([^:]*))?$
これは、値のため$9
を通じてあなたに$1
を与える:
value1:value2:value3:value4:value5:value6:value7:value8:value9
これはあなたのためのケースであれば、ここで若干変更さ@Wiktorが提供する正規表現です
$1 = value1
$2 = value2
$3 = value3
$4 = value4
$5 = value5
$6 = value6
$7 = value7
$8 = value8
$9 = value9
また、空の::
のプレースホルダを使用することもできます。
value1:value2::value4:value5::value7:value8:value9
$1 = value1
$2 = value2
$3 =
$4 = value4
$5 = value5
$6 =
$7 = value7
$8 = value8
$9 = value9
そして、あなたは完全な9値の文字列を持っていない場合、それはまた、例えば、現在の値と一致します
value1:value2::value4
$1 = value1
$2 = value2
$3 =
$4 = value4
試してみてください[ '^([^ \ n]は*):([^ \ n]は*):([^ \ n]は*):([^ ([^:\ n] *):([^:\ n] *):([^:\ n] *) :\ n] *)$ '](https://regex101.com/r/CRnys1/1)。 '\ n'を複数行のコンテンツで実行していない場合は、それを削除することができます。 –
9個未満の値が許可されていますか?つまり、 'value1:value2'は有効な文字列ですか? –