-3

这是我的一些字符串的例子:

  1. 消息:这是一些消息 2. 消息:这是一些消息 3. 消息:这是我只想在结果中看到的消息

根据这个例子,我想得到结果:

这是我只想在结果中看到的消息

我的字符串中可能有多个x. message:句子。

我想删除那些重复的消息

任何想法?

添加:

我的问题是关于一些销售工具和打印报告。我现在运行的代码如下所示:

private void OnBeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
    string a = xtraReport1.GetCurrentColumnValue("Paczka_Notatki").ToString();
    xrTableCell3.Text = a;
}

当我将其更改为:

private void OnBeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
    var str = xtraReport1.GetCurrentColumnValue("Paczka_Notatki").ToString();
    foreach (var message in Regex.Split(str, @"\d+\. message: ")
        .GroupBy(m => m)
        .Where(m => m.Count() == 1 && m.Key != string.Empty)
        .Select(m => new { message = m.Key }))
        {
            xrTableCell3.Text = message.message;
        }
}

然后我遇到了很多错误,例如: 错误-en

4

3 回答 3

2

单程:

foreach (var message in Regex.Split(str, @"\d+\. message: ")
    .GroupBy(m => m)
    .Where(m => m.Count() == 1 && m.Key != string.Empty)
    .Select(m => new { message = m.Key }))
{

    Console.WriteLine(message.message);
}
于 2014-11-10T15:49:19.327 回答
1

从这个简单的正则表达式开始,你会得到你的结果。

\d{1,}\.\smessage:\s(?<Message>[\D\s]+)
于 2014-11-10T15:34:49.610 回答
0
String text = xtraReport1.GetCurrentColumnValue("Paczka_Notatki").ToString();

    string finalNote = "";
    string[] notes = System.Text.RegularExpressions.Regex.Split(text, @"\d{1,}\.\smessage:(?<Message>[\D\s]+)");

    foreach (string note in notes)
    {
        if (!String.IsNullOrEmpty(note) && finalNote.IndexOf(note) == -1)
        finalNote += note;
        }
    xrTableCell3.Text = finalNote;

谢谢大家的支持!!!

于 2014-11-12T20:01:04.430 回答