刚接触 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 次无限次出现)。
