我是正则表达式的新手。我设法解决了一系列整数,但现在我需要一些东西来匹配这个:
{anystring, anystring, anystring}
包括括号,不仅包括3个项目,还包括任何数字。
答案 0 :(得分:1)
以下将(应该)匹配由逗号分隔并用大括号括起来的任意数量的char序列。
@"\{([^,]+, )*([^,]+)\}"
这假设列表将始终包含一个项目。
答案 1 :(得分:1)
这应该适合你:
^\{[^ ,]+(, [^ ,]+)*\}$
假设您的列表包含至少一个项目,每个项目后面跟一个逗号和一个空格(“,”)。如果您只希望每个项目后跟逗号,请使用jjnguy's解决方案。
这是我试图解释这种模式中发生的事情:
[^]
表达式匹配不跟随插入符号^
的任何内容。因此[^ ,]
将匹配除空格或逗号之外的任何内容。+
表示“将之前的内容匹配1次或更多次”。因此[^ ,]+
将匹配任何不包含逗号或空格的字符序列。*
表示“匹配前一次0次或更多次”。因此,(, [^ ,]+)*
将匹配模式, [^ ,]+
的0次或更多次出现 - 以逗号和空格开头的序列,后跟至少一个字符的序列(不包含任何逗号或空格)。 ^\{
和\}$
中全部包装可确保字符串以左大括号开头,以右大括号结束。 有关正则表达式的有用“备忘单”,请参阅this page。
答案 2 :(得分:0)
我更愿意:
String src = "{one, two, three}";
String[] result = src.Substring(1, src.Length - 2).Split(", ");