Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中匹配字符串模式_Python_Pattern Matching - Fatal编程技术网

如何在python中匹配字符串模式

如何在python中匹配字符串模式,python,pattern-matching,Python,Pattern Matching,我正在寻找匹配的模式,如 (u'-<21 characters>', N), (u'-',N), 0-9、a-z、a-z加上~!@#$等21个字符%^&*()_ ... N是一个从1到99的数字 我试图找到具体的方法来检索21个字符以及数字N,并在以后使用re.match方法使用它们,但我不知道如何检索,而且这是不可理解的。我该怎么做呢?这里有一个程序,它可以做你想做的事情 请注意,使用括号()来隔离要查找的数据。另请注意使用m.group(1),m.group(2)检索保存的项

我正在寻找匹配的模式,如

(u'-<21 characters>', N),
(u'-',N),
0-9、a-z、a-z加上~!@#$等21个字符%^&*()_ ... N是一个从1到99的数字


我试图找到具体的方法来检索21个字符以及数字N,并在以后使用
re.match
方法使用它们,但我不知道如何检索,而且这是不可理解的。我该怎么做呢?

这里有一个程序,它可以做你想做的事情

请注意,使用括号
()
来隔离要查找的数据。另请注意使用
m.group(1)
m.group(2)
检索保存的项目

还要注意使用
re.search()
而不是
re.match()
re.match()
必须匹配字符串开头的数据<另一方面,code>re.search()将查找第一个匹配项,而不管它在字符串中的位置如何。(也可以考虑使用<代码> Re.FielLar()/<代码>,如果一个字符串可能有多个匹配项)。 不要被我使用的
.splitlines()
搞糊涂,这只是为了示例程序。您同样可以对数据行执行
data=open('foo.txt')
/

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))

可能重复你的问题不是很清楚。。。你目前掌握的数据是什么。您所描述的模式应该是函数的输入还是输出?@DrBwts-我认为这不是一个好的dup-这篇文章询问的是组,而这篇文章没有以任何方式涉及组。您的数据字符串是否只包含21个字符和一个用逗号分隔的数字?或者,这种模式是嵌入在一个更大的字符串中?您能提供示例输入数据和预期输出吗?所以简单地用逗号分隔就足够了?这会打印每一行,谢谢。我每次都可以使用chars和N来存储这些对,对吗?是的,
chars
N
将为循环的每次迭代保留所需的值。如果您想要所有不同的
字符,N
对,您可能需要创建一个列表来保存它们。