我有一些從 PDF 文件轉換而來的文本,現(xiàn)在我需要使用正則表達式從文本中獲取特定內容。過去我使用索引和數(shù)學來獲得特定長度這是我的文字: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條經(jīng)驗 獲得超2個贊
您可以使用
\b1Z[A-Z0-9]{16}\b
或者
\b1Z\w{16}\b
查看正則表達式演示
細節(jié)
\b
- 一個詞邊界1Z
- 文字子串[A-Z0-9]{16}
- 16 個大寫 ASCII 字母和/或數(shù)字(請注意,\w
將匹配任何字母、數(shù)字和/或_
如果您不通過RegexOptions.ECMAScript
,它將匹配所有 Unicode 字母/數(shù)字,以及一些更“有趣”的符號)\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 關注
- 198 瀏覽
添加回答
舉報
0/150
提交
取消