python - 用于在字符串中查找字母数字模式的正则表达式

标签 python regex

我使用正则表达式在字符串中查找长度为 6 的字母数字。字符串如下所示:

PLT\n\nTRAVELLER NAME LIST\n\n     TRAVELLER              RECLOC COMPANY\n   1          TESTNUMBERFIVEQA/TESTN WL9795\n   2 TESTNUMBERONEYQWA/TEST RHFQCD\n   3 TESTNUMBERONEYQWAZZZ/T 1QZ1JF\n   4 TESTNUMBERONEYQWAZZZM/ N3BZW8\n   5 TESTNUMBERONEYQWAZZZMK 05RXPM\n   6 TESTNUMBERONEYQWAZZZMK 2XR9ZR\n   7 TESTNUMBERTHREEZZZ/TES 0Q14S4\n   8 TESTNUMBERTHREEZZZM/TE LRRKW3\n   9 TESTNUMBERTHREEZZZMK/T 949Z4T\n  10 TESTNUMBERTHREEZZZMKJ/ 51WFM2\n  11 TESTNUMBERTWOZZA/TESTN PRGWVT\n  12 TESTNUMBERTWOZZAZZZ/TE SM0BHS\n  13 TESTNUMBERTWOZZAZZZM/T QRJLH1\n  14 TESTNUMBERTWOZZAZZZMK/ R69NHV\n  15 TESTNUMBERTWOZZAZZZMKJ 67XKF7\n  16 TESTNUMBERTWOZZAZZZMKJ 68PV7P\n  17 TESTNUMBERTWOZZAZZZMKJ GCZZ0C\n)>  18 TESTNUMBERTWOZZAZZZMKJ MLMS3L\n  19 TESTNUMBERTWOZZAZZZMKJ 3R1S49\n  20 TESTNUMBERTWOZZAZZZMKJ WB700R\n  21 TESTNUMBERTWOZZAZZZMKJ 718KRC\n  22 TESTNUMBERTWOZZAZZZMKJ RTQH2H\n  23 TESTNUMBERTWOZZAZZZMKJ N2FLM6\n  24 TESTNUMBERTWOZZAZZZMKJ 40M1FR\n  25 TESTNUMBERTWOZZAZZZMKJ 71D3HF\n  26

我试过的正则表达式是这样的:

for k in mainString:
    m = re.match('([0-9A-Z]{6})', k)
    if (m):
        do something

但它没有按预期工作。有人可以指出我可能犯错的地方吗? 我正在寻找的模式是像 WL9795、RHFQCD 等。

谢谢

最佳答案

match 方法只检查字符串开头的匹配项。

改用搜索方法!

此外,() 是不必要的。

如果代码中的 mainString 实际上是问题顶部的字符串,那么您的代码将无法正常工作,因为 for 循环将遍历所有该字符串中的单个字符。

相反你可以使用

m = re.search(r'\b[0-9A-Z]{6}\b', mainString)
if (m):
    print(m.group())

正则表达式之前的 r 确保 \b 不被视为字符串转义序列。

\b 表示单词边界,并确保 6 个字符的字母数字前后没有单词字符。如果没有它们,第一个匹配项将是 “TRAVELLER” 中的 “TRAVEL”

如果您想获得所有匹配项的列表,请使用 findallfinditer 而不是 search

for m in re.finditer(r'\b[0-9A-Z]{6}\b', mainString):
    print(m.group())

关于python - 用于在字符串中查找字母数字模式的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16043699/

相关文章:

python - 在转换为日期时间的列上使用 timedelta 和 strftime

regex - 将包含不同日期格式的数据框列转换为 Date 对象

regex - 包含制表符的 findstr 查询

javascript - 如何在正则表达式中使用任何语言的任何字母

python - 在 OSX 上安装 llvmpy

python - 如何从 Odoo 10 中的自定义模块修改 noupdate ="1"XML 记录?

python - 比较两组字符串,返回不同的结果

python - 如何将我的 python 应用程序制作/转换为 R Shiny 应用程序?这是一个脑筋急转弯!无法在 R 中找到 UI 需要什么更改

regex - 使用 word VBA 正则表达式提取文本,然后将其作为字符串保存到变量中

用于拆分和匹配的正则表达式命令