【问题标题】:Regular expression to find all words which starts with white space and ends with white space正则表达式查找所有以空格开头并以空格结尾的单词
【发布时间】:2013-10-07 07:26:22
【问题描述】:

我需要在带有空格开头和结尾的字符串中查找单词。我在搜索空白时发现问题。但是,我可以实现以下目标。以@@ 开头和结尾。对空格的任何帮助都会很棒。

string input = "@@12@@ @@13@@";             
foreach (Match match in Regex.Matches(input, @"@@\b\S+?\b@@"))                
{
   messagebox.show(match.Groups[1].Value);
}

【问题讨论】:

  • 我有这个“(\\$\\w+)”,它查找以 $ 开头并以空格结尾的单词。但我需要以空格开头和结尾的单词。

标签: c# regex search whitespace


【解决方案1】:

来自MSDN文档:

// Define a regular expression for repeated words.
    Regex rx = new Regex(@"\b(?<word>\w+)\s+(\k<word>)\b",
      RegexOptions.Compiled | RegexOptions.IgnoreCase);

【讨论】:

    【解决方案2】:
    \s+(?=</)
    

    是你所追求的表达方式。它表示一个或多个空格字符后跟

    【讨论】:

    • 我得到无法识别的转义序列。如果我使用 @"\s+(?=)" 那么它没有进行搜索。
    【解决方案3】:

    我认为最好使用string.Split() 而不是Regex

    var wordsArray = s.Split(new []{' '},StringSplitOptions.RemoveEmptyEntries);
    

    如果您可以使用标准字符串方法更轻松地获得相同的结果,则最好避免使用正则表达式。

    【讨论】:

    • 我不想删除空格。我想搜索带有开头和结尾空格的单词。
    【解决方案4】:

    我无法完全理解你的想法,但我希望这段代码可以帮助你:

    string[] ha = input.Split(new[] { '@' }, StringSplitOptions.RemoveEmptyEntries);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      • 1970-01-01
      • 2018-08-24
      • 2023-03-03
      相关资源
      最近更新 更多