我试着用不情愿的量词来形容一个群体,但并没有达到预期的效果。然而,同样的正则表达式在诸如https://regexr.com/之类的在线正则表达式工具中非常适用。你知道吗
re.findall(r"(ab)?c", "c") # this returns [''], when I expect ['c']
re.findall(r"(ab)?c", "abc") # this returns ['ab'], when I expect ['abc']
我期望正则表达式r“(ab)?“c”与“c”或“abc”匹配。你知道吗
我错过了什么?你知道吗
从
re.findall
的文档中:因此,如果您的模式有一个组,它将返回该组。在第一个示例中,它不会返回任何内容,因为它找不到匹配的组,而第二个示例只返回组。你知道吗
你所寻求的可以通过
re.search
https://docs.python.org/3/library/re.html#re.regex.search来实现:您可以通过对调用结果调用
.groups()
来检索组如果您不想在字符串中
search
,而是检查字符串是否与模式匹配(并可能看到组),请使用re.match(请参阅search vs match了解它们之间的差异)。你知道吗相关问题 更多 >
编程相关推荐