这个正则表达式中的命名组有什么问题

时间:2018-09-16 20:53:04

标签: python regex

我正在努力尝试在某些文档中找到一些注册号。最好的工具似乎是Pythons re模块。我创建了一个可以正常工作的正则表达式,但是当我移到一个命名组时,我无法使它正常工作。

这是我要从中提取的原始文本

    REGISTRATION NO.  874224207             PAGE 32

此正则表达式适用于Pythex

\s+\(?\s*REGISTRATION\s+NUMBER\)?[\.:]?\)?\s+[A-Z0-9#]{9}\s+|\s+\(?\s*REGISTRATION\s+NO\)?[\.:]?\)?\s+[A-Z0-9#]{9}\s+

但是当我命名捕获组Theregis时-这就是我想要的结果,我没有显示任何匹配项

\s+\(?\s*REGISTRATION\s+NUMBER\)?[\.:]?\)?\s+(?P<theregis>[A-Z0-9#]{9})\s+|\s+\(?\s*REGISTRATION\s+NO\)?[\.:]?\)?\s+(?P=theregis)\s+

根据文档

  1. 我的已命名论坛位于括号中
  2. 我以?P开始我的小组
  3. 我的论坛的名称以<>
  4. 括起来

当我使用命名的群组时

  1. 该组位于()中 2我从一个开始?然后P =
  2. 组名与我给它的名字匹配
  3. 使用组名的括号中没有多余的字符
  4. 我尝试将群组名称更改为其他名称-祝您好运

最后-我用它作为模型

 p = re.compile(r'\b(?P<word>\w+)\s+(?P=word)\b')

0 个答案:

没有答案