我正在尝试在" "109491: Navy/Red115138: Navy/Light Grey"
和Colour Code
中拆分此字符串colour name
。数字是颜色代码,包含\
的字符串是颜色名称。我已经尝试过这个正则表达式"(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)"
,但它没有按预期工作。有时它会在Colour Code
中返回空白。
由于
答案 0 :(得分:1)
只需使用:
(\d+[^\d]+)
这是“选择数字......然后是其他任何不是数字的”。所以它匹配如下:
109491: Navy/Red115138: Navy/Light Grey
|______________||______________________|
E.g:
var str = "109491: Navy/Red115138: Navy/Light Grey";
var matches = new List<string>();
foreach (Match match in Regex.Matches(str, @"(\d+[^\d]+)")) {
matches.Add(match.Value);
}
// matches[0] = 109491: Navy/Red
// matches[1] = 115138: Navy/Light Grey
答案 1 :(得分:1)
尝试这样的事情:
(?:(\d+):\s([^\d]+))+?
这会将数字和文本捕获为单独的捕获。
例如: