我正在尝试使用C#匹配以下模式,并且找不到匹配项
正则表达式
^([[a-z][A-Z]]*):([[a-z][A-Z][0-9],]*)$
Run Code Online (Sandbox Code Playgroud)
示例字符串
Student:Tom,Jerry
Run Code Online (Sandbox Code Playgroud)
虽然同样的东西在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();
}
Run Code Online (Sandbox Code Playgroud)
尝试稍微改变你的正则表达式: -
([a-zA-Z]*):([a-zA-Z0-9,]*)
Run Code Online (Sandbox Code Playgroud)
如果你想要所有单词字符(包括下划线),你甚至可以进一步简化它,如果没有,那么使用上面的那个.
(\w*):([\w\d,]*)
Run Code Online (Sandbox Code Playgroud)
没有必要进行多组分组,例如 [[a-z][A-Z]]
| 归档时间: |
|
| 查看次数: |
226 次 |
| 最近记录: |