Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用于匹配字符串列表的正则表达式_C#_Regex - Fatal编程技术网

C# 用于匹配字符串列表的正则表达式

C# 用于匹配字符串列表的正则表达式,c#,regex,C#,Regex,我不熟悉正则表达式。我设法解决了一系列整数,但现在我需要一些匹配的东西: {anystring, anystring, anystring} 包括括号,不仅包括3个项目,还包括任意数量的项目。以下内容将(应)匹配任何数量的字符序列,这些字符序列由comas分隔,并用大括号括起来 @"\{([^,]+, )*([^,]+)\}" 这假设列表将始终包含一项。这应该适用于您: ^\{[^ ,]+(, [^ ,]+)*\}$ 假设您的列表至少包含一个项目,并且每个项目后面都有一个逗号和一个空格(“

我不熟悉正则表达式。我设法解决了一系列整数,但现在我需要一些匹配的东西:

{anystring, anystring, anystring}
包括括号,不仅包括3个项目,还包括任意数量的项目。

以下内容将(应)匹配任何数量的字符序列,这些字符序列由comas分隔,并用大括号括起来

@"\{([^,]+, )*([^,]+)\}"

这假设列表将始终包含一项。

这应该适用于您:

^\{[^ ,]+(, [^ ,]+)*\}$
假设您的列表至少包含一个项目,并且每个项目后面都有一个逗号和一个空格(“,”)。如果您只希望每个项目后面都跟一个逗号,请使用解决方案

以下是我对这种模式的解释:

  • [^]
    表达式匹配任何不在插入符号
    ^
    后面的项。因此,
    [^,]
    将匹配除空格或逗号之外的任何内容
  • +
    表示“匹配上一件事1次或多次”。因此,
    [^,]+
    将匹配任何不包含逗号或空格的字符序列
  • *
    表示“匹配上一件事0次或更多次”。因此,
    (,[^,]+)*
    将匹配模式的0个或多个匹配项,
    ,[^,]+
    ——一个以逗号和空格开头的序列,后跟至少一个字符的序列(不包含任何逗号或空格)
  • ^{
    \}$
    中包装所有字符串可确保字符串以左大括号开始,以右大括号结束
有关正则表达式的有用“备忘单”,请参阅。

我更喜欢:

String src = "{one, two, three}";
String[] result = src.Substring(1, src.Length - 2).Split(", ");

“anystring”中允许哪些字符?我更正了jjnguy名字的拼写。希望我没有弄乱你正在做的任何编辑。@Jeff M jjnguy,明白了——我责备kerning:)不用担心;我只是想澄清第三点。为表达和有用的评论和链接干杯!