【问题标题】:Edit richtextbox to keep only words that contains underscore编辑richtextbox以仅保留包含下划线的单词
【发布时间】:2013-09-28 13:42:08
【问题描述】:

我需要一些帮助来定义如何编辑 RichTextBox 中的文本。 例如,我将以下文本粘贴到 RichTextBox 中:

"Release to user USER the roles: ZBR_POA_FIL_APOIO_GESTAO, ZBR_REC_FIL_SUPPORT, ZBR_RJO_CD_FIL_SUPPORT, ZBR_SVD_CD_FIL_SUPPORT, Z_GENERAL_OBJECTS, Z_DEBUG, Z_CHECK"

然后我想编辑它以仅保留包含下划线_ 的文本,并将它们分隔在一个新行中,如下所示:

ZBR_POA_FIL_APOIO_GESTAO
ZBR_REC_FIL_SUPPORT
ZBR_RJO_CD_FIL_SUPPORT
ZBR_SVD_CD_FIL_SUPPORT
Z_GENERAL_OBJECTS
Z_DEBUG
Z_CHECK

我想我可能应该为此使用正则表达式,但我运气不佳。

【问题讨论】:

  • 到目前为止你有没有尝试过?
  • 是的,杰瑞,我已经尝试了很多东西,但我唯一能做的就是打破新行中的每个空格(实际上没有任何秘密),现在我只想保留包含下划线的行,删除没有的行,然后删除空行。我最需要的是:如何只保留包含下划线的行?

标签: c# regex richtextbox


【解决方案1】:
public string FormatString(string s)
{
String[] array=Regex.Matches(@"\b(?=\w*_)\w+\b",s)
                    .Cast<Match>()
                    .Select(x=>x.Value).ToArray();
return String.Join("\n",array);
}

【讨论】:

  • 谢谢阿尼鲁德。我现在不打算使用这个功能,但它帮助我更多地理解正则表达式,这对我将来非常有帮助。最好的问候,保罗罗查
【解决方案2】:
var text = @"Release to user USER the roles: ZBR_POA_FIL_APOIO_GESTAO, ZBR_REC_FIL_SUPPORT, ZBR_RJO_CD_FIL_SUPPORT, ZBR_SVD_CD_FIL_SUPPORT, Z_GENERAL_OBJECTS, Z_DEBUG, Z_CHECK";
var words = text.Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
var wordsWithUnderscores = words.Where(o => o.Contains("_")).ToArray();

foreach(var word in wordsWithUnderscores) {
    Console.WriteLine(word);
}

【讨论】:

  • 谢谢路易斯。比我想象的要简单得多。最好的问候。
猜你喜欢
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
  • 2020-08-09
  • 1970-01-01
  • 2018-09-19
  • 2016-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多