c# - 正则表达式匹配.Net

标签 c# .net regex

我使用此代码来匹配

 var regex = new Regex(@"\[0-9]{3,4}/?\s?\\?\-?_?[A-Z]{2,2}-?\s?/?_?\\?[A-Z]{2,2}");

var match = regex.Match(str);
if (match.Success)
{
   Console.WriteLine(match.Value);
   Console.ReadLine();
}

这个字符串:1111 CD XZ 还有这个 1111/AB-XZ 但是没有用,我昨天才开始使用 Regex 进行编程的初始步骤。我做错了什么?

我的目标是匹配The yellow mark on this Image

最佳答案

您的正则表达式已损坏,因为 [ 之前的 \ 使正则表达式引擎匹配文字 [ 符号,而您想要创建一个字符类.此外,您可以为字符串中的分隔符定义一个非单词可选模式,而不是定义一系列可选字符。

你可以使用

@"\b[0-9]{3,4}(?:\W?[A-Z]{2}){2}\b"

参见 regex demo

详情

  • \b - 单词边界(以确保您稍后真正匹配 3 到 4 位数字序列)
  • [0-9]{3,4} - 3 到 4 位数字
  • (?:\W?[A-Z]{2}){2} - 2 个序列
    • \W? - 一个可选的非单词字符(空格、标点符号或符号)
    • [A-Z]{2} - 2 个大写 ASCII 字母
  • \b - 尾随单词边界。

关于c# - 正则表达式匹配.Net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46891265/

相关文章:

c# - 将多个文件传递给函数

c# - EF 检测到迁移错误但数据库处于实际状态

.net - Dll 替换问题(黑暗中的谜语)

javascript - 正则表达式查找包含双星号包围的数字的所有内容

c# - 只想查找最近 X 天的文件

c# - 使用 Nunit 3.x 的参数化测试

c# - 为什么 Convert.ToInt32(DateTime) 存在?

c# - .net 下是否提供 CryptoAPI(CryptEncrypt 和 CryptDecrypt)?

java - 如何限制正则表达式中的负向前瞻

regex - Google Analytics RegEx:包括所有带有字符串“example”的URL,但排除那些带有“.com/example”的URL