小编典典

在.NET中从带有正则表达式的字符串中提取令牌

algorithm

我很好奇正则表达式是否有可能。我想从类似于以下内容的字符串中提取令牌:

Select a [COLOR] and a [SIZE].

好的,很简单-我可以使用 (\[[A-Z]+\])

但是,我也想提取标记之间的文本。基本上,我希望以上的匹配组为:

"Select a "
"[COLOR]"
" and a "
"[SIZE]"
"."

最好的方法是什么?如果可以使用RegEx做到这一点,那就太好了。否则,我猜测我必须提取令牌,然后手动遍历MatchCollection并根据每个Match的索引和长度解析出子字符串。请注意,我需要保留字符串和标记的顺序。有没有更好的算法来进行这种字符串解析?


阅读 258

收藏
2020-07-28

共1个答案

小编典典

使用Regex.Split(s, @"(\[[A-Z]+\])")-它应该为您提供精确的阵列。拆分将捕获的组转换为结果数组中的标记。

2020-07-28