繁体   English   中英

简单文本的正则表达式模式

[英]Regex pattern for simple text

我有一些从PDF文件转换的文本,现在我需要使用正则表达式从文本中获取特定内容。 过去我使用索引和数学来获得特定长度

这是我的文字:

1ZW6897X0327621544

每个以1Z开头,长度为18个字符。

我尝试去Regexr.com寻求帮助,但这根本没有任何意义:

1Z[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]

这就是我的大脑处理正在阅读的内容的方式,从1Z开始,然后在接下来的16个地方输入0-9任何字符?

有人可以帮忙吗?

您可以使用

\b1Z[A-Z0-9]{16}\b

要么

\b1Z\w{16}\b

正则表达式演示

细节

  • \\b单词边界
  • 1Z文字子字符串
  • [A-Z0-9]{16} -16个大写ASCII字母和/或数字(请注意\\w将与任何字母,数字和/或_匹配,并且如果不传递RegexOptions.ECMAScript ,它将与所有Unicode匹配字母/数字,以及更多“有趣”的符号)
  • \\b单词边界。

如果边界是空格(即,匹配预期在字符串或空格的开头,然后在字符串或空格的结尾),则可以使用(?<!\\S)1Z[A-Z0-9]{16}(?!\\S)模式。

在C#中,您可以将其与Regex.Matches使用:

var results = Regex.Matches(s, @"\b1Z[A-Z0-9]{16}\b")
        .Cast<Match>()
        .Select(m => m.Value)
        .ToList();

暂无
暂无

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

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