正規表現は初めてです。私は、整数の範囲を解決するために管理が、今私はこれを一致させる何かが必要:文字列のリストに一致する正規表現
{anystring, anystring, anystring}
ブラケットを含むだけでなく、3項目のために、しかし、任意の数のために。
正規表現は初めてです。私は、整数の範囲を解決するために管理が、今私はこれを一致させる何かが必要:文字列のリストに一致する正規表現
{anystring, anystring, anystring}
ブラケットを含むだけでなく、3項目のために、しかし、任意の数のために。
これはあなたのために働く必要があります。
^\{[^ ,]+(, [^ ,]+)*\}$
と仮定すると、あなたのリストには、少なくとも一つの項目が含まれており、各項目はコンマとスペース(「」)が続いていること。各項目の後にカンマを付ける場合は、jjnguy'sソリューションを使用してください。
[^]
式ががキャレット^
に従わないものと一致した: は、ここでは、このパターンで何が起こっているかの説明で私の試みです。したがって、[^ ,]
は、スペースまたはコンマ以外のものと一致します。
+
は、「前のものを1回以上一致させる」ことを意味します。したがって、[^ ,]+
は、カンマまたはスペースを含まない文字のシーケンスと一致します。*
は、「前のものを0回以上一致させる」ことを意味します。したがって、(, [^ ,]+)*
は、パターン, [^ ,]+
の0回以上の一致と一致します。コンマと空白で始まり、少なくとも1文字のシーケンス(コンマまたはスペースを含まない)が続きます。^\{
と\}$
にすべてをラップすると、文字列は左中括弧で始まり右中括弧で終わることが保証されます。this pageを参照してください。正規表現には便利な「カンニングシート」があります。
_jjnguy_の名前のスペルを修正しました。うまくいけば、私はあなたが作っていた編集を混乱させなかったでしょう。 –
@Jeff M jjnguy、gotcha - 私はカーニングを責める:)心配しないでください。私はその第3の箇条書きを明確にしようとしていました。 – Donut
表現と便利なコメントとリンクへの感謝! –
以下は、かっこで区切られ、中括弧で囲まれた任意の数のcharシーケンスと一致します(必要があります)。
@"\{([^,]+,)*([^,]+)\}"
これは、リストには常に1つのアイテムが含まれていることを前提としています。
私が希望:
String src = "{one, two, three}";
String[] result = src.Substring(1, src.Length - 2).Split(", ");
'anystring' で許される文字
? – MerickOWA