繁体   English   中英

正则匹配.Net

[英]Regex Match .Net

我使用此代码进行匹配

 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 但是不工作,我在编程的初始步骤我昨天我开始使用正则表达式。 我做错了什么?

我的目标是匹配这张图片上的黄色标记

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

您可以使用

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

查看正则表达式演示

细节

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

使用这个正则表达式(?i)\\d{3,4}[\\s\\/]\\/?[az]{2}[-\\s][az]{2}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM