gpt4 book ai didi

c# - 如何在分隔符上拆分字符串,并将分隔符作为结果数组中的元素保留?

转载 作者:太空宇宙 更新时间:2023-11-03 21:23:21 25 4
gpt4 key购买 nike

这个问题已经在这个网站上以两种方式被问到:第一种方式实际上是一个不同的问题; OP 希望将分隔符保留在结果元素的末尾/开头。第二个问题收到的答案中包含一个我无法理解如何扩展的正则表达式。

我正在寻找一种在分隔符上拆分字符串的方法,其中分隔符将作为元素包含在结果数组中。请解释我如何为此功能选择自定义分隔符(最有可能是正则表达式)。

最佳答案

您可以使用正则表达式来指定具有前瞻性或后瞻性的空表达式。

例如,假设您希望根据以下任何字符拆分字符串:

'(' ' ' ',' ')' '*' '/' '+' '-'

然后您可以构建一个表达式,在前瞻或后视子句中列出它们(即 (?=...)(?<=...) ),并使用 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);
}

Demo.

运行它会产生以下输出:

'12'
' '
'/'
' '
'34'
'+'
'('
'45'
'-'
'56'
')'
'*'
'678'

请注意所有分隔符以及空格、括号和运算符的包含方式。

关于c# - 如何在分隔符上拆分字符串,并将分隔符作为结果数组中的元素保留?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29051489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com