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")
我希望使用正则表达式分别匹配以下类型字符串中包含的数字:
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")