猿问

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

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

这就是我的大脑处理我正在阅读的内容的方式,1Z0-9接下来的 16 个位置的开头和任何字符吗?

有人可以帮忙吗。


天涯尽头无女友
浏览 167回答 1
1回答

撒科打诨

您可以使用\b1Z[A-Z0-9]{16}\b或者\b1Z\w{16}\b查看正则表达式演示细节\b&nbsp;- 一个词边界1Z&nbsp;- 文字子串[A-Z0-9]{16}- 16 个大写 ASCII 字母和/或数字(请注意,\w将匹配任何字母、数字和/或_如果您不通过RegexOptions.ECMAScript,它将匹配所有 Unicode 字母/数字,以及一些更“有趣”的符号)\b&nbsp;- 一个字边界。如果边界是空格(即匹配的前面是字符串或空格的开头,后面是字符串或空格的结尾),您可以使用(?<!\S)1Z[A-Z0-9]{16}(?!\S)模式代替。在 C# 中,你可以使用它Regex.Matches:var&nbsp;results&nbsp;=&nbsp;Regex.Matches(s,&nbsp;@"\b1Z[A-Z0-9]{16}\b") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Cast<Match>() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Select(m&nbsp;=>&nbsp;m.Value) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ToList();
随时随地看视频慕课网APP
我要回答