与给定结构匹配的正则表达式

时间:2016-04-07 13:47:58

标签: c# regex

我需要生成一个正则表达式来匹配任何具有此结构的字符串:

{"anyWord"}{"aSpace"}{"-"}{"anyLetter"}

我该怎么做?

由于

  

修改

我试过了:

  string txt="print -c";

  string re1="((?:[a-z][a-z]+))";   // Word 1

  Regex r = new Regex(re1,RegexOptions.IgnoreCase|RegexOptions.Singleline);
  Match m = r.Match(txt);
  if (m.Success)
  {
        String word1=m.Groups[1].ToString();
        Console.Write("("+word1.ToString()+")"+"\n");
  }
  Console.ReadLine();

但这只匹配“print”一词

1 个答案:

答案 0 :(得分:3)

这很简单:

[a-zA-Z]+\s\-[a-zA-Z]

解释如下:

[a-zA-Z]+        # Matches 1 or more letters
\s               # Matches a single space
\-               # Matches a single hyphen / dash
[a-zA-Z]         # Matches a single letter

如果您需要在C#中实现此功能,则可以使用Regex类,特别是Regex.Matches()方法:

var matches = Regex.Matches(yourString,@"[a-zA-Z]+\s\-[a-zA-Z]");

某些示例匹配可能如下所示:

enter image description here