【问题标题】:Regular expression comparison [closed]正则表达式比较
【发布时间】:2013-01-30 13:34:57
【问题描述】:

我想检查我的字符串变量是否包含特定的正则表达式模式

xxx-xx-x

(x 是数值)使用 c#。如果它包含,那么我需要返回 true 或 false。

谁能帮我解决这个问题..

【问题讨论】:

  • 能否请您向我们展示一下您到目前为止所做的尝试?
  • “包含”到底是什么意思? “123”包含“2”,对吧?

标签: c# regex c#-4.0


【解决方案1】:

使用Regex.IsMatch()返回的值。

Regex regex = new Regex("[0-9]{3}-[0-9]{2}-[0-9]");

bool containsPattern = regex.IsMatch(stringToVerify);

【讨论】:

  • 你也可以匹配 111-22-345111-22-3-33
  • @Some1.Kill.The.DJ 是的,“包含特定的正则表达式”有歧义。
【解决方案2】:

这是您要查找的正则表达式

\b\d{3}-\d{2}-\d\b

\b 是一个边界..如果你不使用它,你也会匹配 111-22-345111-22-3-33 我猜你不想匹配

【讨论】:

  • 但它也会拒绝_111-22-3_ABD111-22-3 xyz
  • @nhahtdh 好点..但我想他需要澄清一下..
【解决方案3】:
using System.Text.RegularExpressions;

public static bool ControlRegex(string input)
{
   Match match = Regex.Match(input, @"([A-Za-z0-9\-]+)",RegexOptions.IgnoreCase);

   if (match.Success)
   {
     return true;
   }
}

您可以尝试这样的事情...您必须将正确的正则表达式放在 Regex.Match 的第二参数...

您可以使用正则表达式程序找到正确的正则表达式。例如“RegEx TestBed”,您可以从这里下载; http://regextestbed.codeplex.com/releases/view/60833 使用此程序,您将文本放在文本区域中,并在模式区域中尝试找到正确的正则表达式。下面,在列表区域中,程序会根据您的正则表达式向您显示匹配项,因此您可以尝试找到正确的正则表达式...

【讨论】:

  • 我没有对此投反对票,但我怀疑它被否决了,因为它没有提供满足要求的正则表达式。返回真/假的部分就在那里,但我认为 OP 也需要一个适当的正则表达式。
  • 我明白了,您可以使用正则表达式程序找到正确的正则表达式。例如“RegEx TestBed”,您可以从这里下载; regextestbed.codeplex.com/releases/view/60833 使用此程序,您将文本放在文本区域中,然后在模式区域中尝试您的正则表达式。在列表区域下方,它会向您显示匹配项,以便您尝试找到正确的正则表达式...
猜你喜欢
  • 1970-01-01
  • 2017-09-27
  • 1970-01-01
  • 2011-04-17
  • 1970-01-01
  • 2017-10-08
  • 2016-04-28
  • 1970-01-01
相关资源
最近更新 更多