Flevtek Asked:2024-12-09 06:06:54 +0000 UTC2024-12-09 06:06:54 +0000 UTC 2024-12-09 06:06:54 +0000 UTC 用于查找不在特定子字符串内的数字的模式 772 我需要使用 re.findall 查找所有数字,无论是小数还是整数,但它们不应该位于 Factorial() 括号内。我尝试了该模式 (?<!factorial\()(?<!\.)(?:\d+(?:\.\d+)?),但如果小数点前后超过 1 位数字,则不起作用 python 1 个回答 Voted Best Answer strawdog 2024-12-09T22:59:32Z2024-12-09T22:59:32Z 也许更容易不去处理带有前瞻等的复杂模式——很容易犯错误,而且并非所有情况都可以预见?是的,而且很贵。也许我们应该先去掉字符串中的阶乘,然后再找到我们需要的东西? import re a = "12.4 - factorial(5) + (15.7)-factorial(1.14) -3" res = re.findall(r"[0-9.]+", re.sub(r"factorial\([^\)]+\)", "", a)) print(res) ['12.4', '15.7', '3']
也许更容易不去处理带有前瞻等的复杂模式——很容易犯错误,而且并非所有情况都可以预见?是的,而且很贵。也许我们应该先去掉字符串中的阶乘,然后再找到我们需要的东西?