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:)不用担心;我只是想澄清第三点。为表达和有用的评论和链接干杯!