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

时间:2018-07-23 20:15:35

标签: c# regex

我有一些从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

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:4)

您可以使用

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

\b1Z\w{16}\b

请参见regex demo

详细信息

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

如果边界是空格(即,匹配预期在字符串或空格的开头,然后在字符串或空格的结尾),则可以改用\b模式。

在C#中,您可以将其与(?<!\S)1Z[A-Z0-9]{16}(?!\S)一起使用:

Regex.Matches