[英]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.