【问题标题】:Search for 2 specific letters followed by 4 numbers Regex搜索 2 个特定字母后跟 4 个数字 Regex
【发布时间】:2020-01-08 11:37:44
【问题描述】:

我需要检查一个字符串是否以 2 个特定字母开头,然后是任意 4 个数字。

这两个字母是“BR”,因此 BR1234 有效,例如 BR7412。

我需要哪些代码来检查字符串是否与 C# 中的正则表达式匹配?

我写的正则表达式如下,可能有更有效的写法(我是正则表达式的新手)

[B][R][0-9][0-9][0-9][0-9]

【问题讨论】:

  • ^锚点:^BR[0-9]{4}

标签: c# regex match


【解决方案1】:

你可以用这个:

Regex regex = new Regex(@"^BR\d{4}");
  • ^ 定义了字符串的开头(所以BR之前应该没有其他字符)
  • BR 匹配 - 好吧 - BR
  • \d 是一个数字 (0-9)
  • {4} 表示前面提到的组中必须有 4 个 (\d)

您没有指定允许跟随四位数字的内容。如果这应该是字符串的结尾,请添加$

在 C# 中的用法:

string matching = "BR1234";
string notMatching = "someOther";

Regex regex = new Regex(@"^BR\d{4}");
bool doesMatch = regex.IsMatch(matching); // true
doesMatch = regex.IsMatch(notMatching); // false;

【讨论】:

  • 谢谢,你知道实现这个的 c# 代码是什么样的吗?
  • @JoeBW 具体实现了什么?要测试字符串是否匹配,请使用上面的行 (Regex regex = ...),然后您可以像 var doesMatch = regex.IsMatch("...your string..."); 一样进行测试
  • 谢谢,我需要“Regex”类的参考/nuget
  • @JoeBW 不,它是框架的一部分,在 System.Text.RegularExpressions` 命名空间中标明。所以using System.Text.RegularExpressions; 就足够了。见docs
【解决方案2】:
BR\d{4}

一些文字至少要 30 个字符长:)

【讨论】:

  • 用这30个字符解释如何?
  • 谢谢,你知道实现这个的 c# 代码是什么样的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多