python - Python正则表达式:使用findall仅从括号中提取整数的问题
问题描述
我正在尝试在 Python 中自学正则表达式,并且正在尝试使用它。我找到了练习正则表达式的练习,我现在面临一些困难。
练习是从字符串中查找并返回括号内的整数。该函数也应该在括号内返回这些值。数字和括号之间可以有空格,但除了构成整数的字符外,不能有其他字符(数字前允许使用-或+,并且-应该保留在返回的列表中)。
我几乎解决了这个问题,但我似乎无法找到解决小错误的方法。
我的代码返回[47, -43, 12]
. 它应该返回[47, 12]
。
因此,我的正则表达式语句应该忽略前面有 + 和 - 的数字,但我无法让它工作。因此,它应该包括负数,但不能包括前面有多个 + 或 - 的数字。
这是我的代码。
import re
def integers_in_brackets(sample):
t = re.findall(r"\[\s*\+?(-?\d+)\s*\]", sample)
t = list(map(int, t))
return t
def main():
print(integers_in_brackets("afd [128+] [47 ] [a34] [ +-43 ]tt [+12]xxx!"))
#this test below works
#print(integers_in_brackets(" afd [asd] [12 ] [a34] [ -43 ]tt [+12]xxx"))
if __name__ == "__main__":
main()
解决方案
推荐阅读
- json - 如何从 Xamarin 中的 API 读取字典类型的 json 返回?
- flutter - 未处理的异常:类型 '_InternalLinkedHashMap
' 不是类型 'FutureOr 的子类型 - >'
- reactjs - 在 redux 商店更新时不会触发 useEffect
- reactjs - 在 tsx 文件中显示来自 ReactJS 中 url 的图像
- python - 为 Python Azure Function App 设置构建管道时出现“无法在 Azure Active Directory 中创建应用程序”异常
- php - Payone获取交易清单“历史”
- c++ - 执行显式模板实例化 (ETI) 的重复方式更少?(没有宏)
- python - 如何在python中重塑图像的尺寸
- bash - 在 conda 环境中,当我关闭终端时,GNU 并行作业停止启动新作业
- html - 使用 CSS 网格垂直扩展网格模板行时遇到问题