[英]Extract values from a string into arrays
我有一个这样的字符串:
约翰“是我最好的伙伴”,他喜欢“草莓汁”
我想要-
array1
array2
)。输出:
array1[0]
: 是我最好的伙伴
array1[1]
: 草莓汁
array2[0]
:约翰
array2[1]
:和
array2[2]
:他
array2[3]
: 喜欢
任何帮助表示赞赏。
显然,这是对正则表达式的调用:
var str = @"john ""is my best buddy"" and he loves ""strawberry juice""";
var regex = new Regex("(\"(?'quoted'[^\"]+)\")|(?'word'\\w+)",
RegexOptions.Singleline|RegexOptions.Compiled);
var matches = regex.Matches(str);
var quotes = matches.Cast<Match>()
.SelectMany(m => m.Groups.Cast<Group>())
.Where(g => g.Name == "quoted" && g.Success)
.Select(g => g.Value)
.ToArray();
var words = matches.Cast<Match>()
.SelectMany(m => m.Groups.Cast<Group>())
.Where(g => g.Name == "word" && g.Success)
.Select(g => g.Value)
.ToArray();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.