我有一些从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
?
有人可以帮忙吗?
答案 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