Python 正则表达式匹配单词后的数字

Python Regex match numbers after words

我希望使用正则表达式分别匹配以下类型字符串中包含的数字:

https://www.pizza.com/word1/685185197419/word2/980054970331342/

输出:

w1 = 685185197419
w2 = 980054970331342

我正在使用这个表达式,但它不能正常工作:\word1(.*)[0-9]\/

试试这个 pattern:

(?<=word[12]\/)\d+

示例:

import re

text = 'https://www.pizza.com/word1/685185197419/word2/980054970331342/'
w1, w2 = re.findall('(?<=word[12]\/)\d+', text)
print(w1, w2, sep='\n')

打印:

685185197419
980054970331342

您需要指定在哪里可以找到每个数字序列。还有,你可以使用命名组,它可以在最后匹配你想要的变量

s = "https://www.pizza.com/word1/685185197419/word2/980054970331342/"

r = re.match(r"^.*word1/(?P<w1>\d+)/word2/(?P<w2>\d+)/$", s)

w1 = r.group("w1")
w2 = r.group("w2")