我希望匹配像
这样的模式(u'-<21 characters>', N),
21个字符的0-9,a-z,A-Z加上字符,如〜!@#$%^&amp; *()_ ... N是1至99的数字
我正在尝试找到检索21个字符以及数字N的具体方法,稍后使用re.match
方法使用它们但我不知道如何且documentation不是可以理解的。我该怎么做?
答案 0 :(得分:1)
这是一个可能做你想要的程序。
请注意使用括号()
来隔离您要查找的数据。另请注意使用m.group(1)
,m.group(2)
来检索这些已保存的项目。
另请注意使用re.search()
代替re.match()
。 re.match()
必须匹配字符串最开头的数据。另一方面,re.search()
将找到第一个匹配,无论其在字符串中的位置如何。 (但如果字符串可能有多个匹配项,也请考虑使用re.findall()
。)。
不要因使用.splitlines()
而感到困惑,这只是为了示例程序。你也可以data = open('foo.txt')
/ for line in data:
。
import re
data = '''
(u'--UE_y6auTgq3FXlvUMkbw', 10),
(u'--XBxRlD92RaV6TyUnP8Ow', 1),
(u'--sSW-WY3vyASh_eVPGUAw', 2),
(u'-0GkcDiIgVm0XzDZC8RFOg', 9),
(u'-0OlcD1Ngv3yHXZE6KDlnw', 1),
(u'-0QBrNvhrPQCaeo7mTo0zQ', 1)
'''
data = data.splitlines()
for line in data:
m = re.search(r"'(.+)', (\d+)", line)
if m:
chars = m.group(1)
N = int(m.group(2))
print("I found a match!: {}, {}".format(chars, N))