Skip to main content
 首页 » 编程设计

python之python正则表达式中的重复模式

2025年05月04日26dyllove98

刚接触 python 正则表达式,想写一些与此匹配的东西

<name>.name.<age>.age@<place>

我可以做到这一点,但希望模式具有并检查姓名和年龄。

pat = re.compile(""" 
       ^(?P<name>.*) 
        \. 
        (?P<name>.*) 
        \. 
        (?P<age>.*) 
        \. 
        (?P<age>.*?) 
        \@ 
        (?P<place>.*?) 
        $""", re.X) 

然后我匹配并提取值。 res = pat.match('alan.name.65.age@jamaica')

想知道执行此操作的最佳实践吗?

请您参考如下方法:

字面匹配 .name 和 .age。为此,您不需要新的群组。

pat = re.compile(""" 
       ^(?P<name>[^.]*)\.name 
        \. 
        (?P<age>[^.]*)\.age 
        \@ 
        (?P<place>.*) 
        $""", re.X) 

注释

  • 我已经用 [^.]*(“除点之外的任何内容”)替换了 .*(“任何内容”),因为点不能真正成为一部分您显示的模式中的名称。
  • 想一想你是指 *(0 次无限次出现)还是 +(1 次无限次出现)。