在此站点上以两种方式提出了这个问题:第一种方法实际上是一个不同的问题;OP希望将分隔符保留在结果元素的末尾/开头。第二个问题收到一个答案,其中包括一个我不知道如何扩展的正则表达式。
我正在寻找一种在分隔符上拆分字符串的方法,其中分隔符将作为元素包含在结果数组中。请说明如何为该功能选择自定义分隔符(最有可能是正则表达式)。
您可以使用正则表达式指定带有前瞻性或后瞻性的空表达式。
例如,假设您希望将字符串拆分为以下任意字符:
'(' ' ' ',' ')' '*' '/' '+' '-'
然后,您可以构造一个表达式,在前瞻性或lookbehind子句(即(?=...)
或(?<=...)
)中列出它们,并使用进行拆分Regex.Split
,如下所示:
string input = "12 / 34+(45-56)*678";
string pattern = "(?=[( ,)*/+-])|(?<=[( ,)*/+-])";
string[] substrings = Regex.Split(input, pattern);
foreach (string match in substrings) {
Console.WriteLine("'{0}'", match);
}
运行此命令将产生以下输出:
'12'
' '
'/'
' '
'34'
'+'
'('
'45'
'-'
'56'
')'
'*'
'678'
请注意如何包括所有分隔符,以及空格,括号和运算符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句