-1

我有一个问题,我有一个看起来像这样的字符串:

abc'def'ghi?'jkl'mno?'pqr'stu'vwx'yz'

我需要用 ' 字符分割这个字符串,但前提是它前面没有问号,这会避开 ' 字符。除此之外,如果 ' 被转义,我需要不带问号字符的结果字符串。

对于这个例子,结果应该是一个列表:

abc
def
ghi'jkl
mno'pqr
stu
vwx
yz

我希望你能帮我解决这个问题

亲切的问候

4

4 回答 4

2
string[] output=Regex.Split(input,@"(?<!\?)'")
                     .Select(x=>x.Replace("?'","'"))
                     .ToArray();
于 2013-09-20T07:30:35.767 回答
0

好吧,我会像这样一步一步地使用:

string str = @"abc'def'ghi?'jkl'mno?'pqr'stu'vwx'yz'";
string[] results = Regex.Split(str, @"(?<!\?)'");
var regex = new Regex(@"\?(?=')");
foreach (string result in results)
{
    string output = regex.Replace(result, "");
    Console.WriteLine(output);
}
于 2013-09-20T07:37:54.583 回答
0
string value = "abc'def'ghi?'jkl'mno?'pqr'stu'vwx'yz'";

if ( value.Contains("?"))
{
     value = value.Replace("?", "");
}
value=value.Replace("'",Environment.NewLine);

在此处输入图像描述

于 2013-09-20T07:27:26.140 回答
0

首先检查任一字符串是否包含问号,将其替换为 null,然后拆分您的字符串,如下所示。

string value = "abc'def'ghi?'jkl'mno?'pqr'stu'vwx'yz'";

if ( value.Contains("?"))
{
     value = value.Replace("?", null);
}

string[] splitedString = value.Split('\'');
于 2013-09-20T07:24:35.363 回答