[英]Regex is not matching in c#
我正在尝试使用C#匹配以下模式,并且找不到匹配项
正则表达式
^([[a-z][A-Z]]*):([[a-z][A-Z][0-9],]*)$
示例字符串
Student:Tom,Jerry
虽然同样的东西在ruby中起作用(使用Rubular验证它)。 知道为什么这不适用于c#?
代码块
public static KeyValuePair<string, IList<string>> Parse(string s)
{
var pattern = new Regex(@"(\w*):([\w\d,]*)");
var matches = pattern.Matches(s);
if (matches.Count == 2)
{
return new KeyValuePair<string, IList<string>>(matches[0].Value, matches[1].Value.Split(','));
}
throw new System.FormatException();
}
尝试稍微改变你的正则表达式: -
([a-zA-Z]*):([a-zA-Z0-9,]*)
如果你想要所有单词字符(包括下划线),你甚至可以进一步简化它,如果没有,那么使用上面的那个。
(\w*):([\w\d,]*)
不需要多组分组,例如[[az][AZ]]
您可以进一步简化它:
^([A-z]*):([\w,]*)$
第一组相当于[a-zA-Z]
,第二组相当于[a-zA-Z0-9]
。 如果您希望第一个组与数字以及字符匹配,您可以在任何地方使用\\w
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.