为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
天涯尽头无女友 2021-10-24 16:54:26
我有一些从 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();


查看完整回答
反对 回复 2021-10-24
  • 1 回答
  • 0 关注
  • 166 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信