我有一些从 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是0-9接下来的 16 个位置的开头和任何字符吗?有人可以帮忙吗。
1 回答
撒科打诨
TA贡献1934条经验 获得超2个赞
您可以使用
\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();
- 1 回答
- 0 关注
- 166 浏览
添加回答
举报
0/150
提交
取消