re.findall("(100|[0-9][0-9]|[0-9])%", "89%")
这将返回唯一结果[89]
我需要回到整个89%。 任何想法如何做到这一点吗?
re.findall("(100|[0-9][0-9]|[0-9])%", "89%")
这将返回唯一结果[89]
我需要回到整个89%。 任何想法如何做到这一点吗?
平凡解:
>>> re.findall("(100%|[0-9][0-9]%|[0-9]%)","89%")
['89%']
更漂亮的解决方案:
>>> re.findall("(100%|[0-9]{1,2}%)","89%")
['89%']
最漂亮的解决方案:
>>> re.findall("(?:100|[0-9]{1,2})%","89%")
['89%']
>>> re.findall("(?:100|[0-9][0-9]|[0-9])%", "89%")
['89%']
当有捕捉组findall
只返回捕获的部分。 使用?:
防止括号从一个捕获组。
使用一个外组,与内基团的非捕获组:
>>> re.findall("((?:100|[0-9][0-9]|[0-9])%)","89%")
['89%']