gpt4 book ai didi

c# - 简单文本的正则表达式模式

转载 作者:行者123 更新时间:2023-11-30 20:25:33 25 4
gpt4 key购买 nike

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

有人可以帮忙吗

最佳答案

你可以使用

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

或者

\b1Z\w{16}\b

参见 regex demo

详情

  • \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();

关于c# - 简单文本的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51486620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com