gpt4 book ai didi

python - 如何找到字符串的第一个数字

转载 作者:行者123 更新时间:2023-11-30 22:14:03 25 4
gpt4 key购买 nike

这是一个非常基本的问题......抱歉......我是新手。几个规范:- 字符串是算术表达式。-它希望输出返回数字,即 2 位数字或 3 位数字 数字取决于字符串。例如,如果字符串是“12+3-5/6”那么输出应该是12。我已经尝试过:

import re
s = "12*9-6/4"
m = re.search("\d" , s)
if m:
print(s[m.start()])
else:
print("try again")

但这会输出它看到的第一个数字,而不是整个 2 位数字。我该如何更改它?

input = '123abc456def'
output = re.findall(r'^\d+', input)

但这会返回方括号中的值。我只是得到一个号码吗?

最佳答案

如果没有regex,您可以将next与生成器理解和枚举一起使用:

s = '12*9-6/4'

idx = next((i for i, j in enumerate(s) if not j.isdigit()), len(s))

res = int(s[:idx]) # 12

说明

  • 生成器理解式迭代枚举的 s,生成 (0, '1')(1, '2')(2, '*')
  • 通过 next,我们发现第一个实例 j.isdigit 对于 s 中的字符计算结果为 true。
  • 然后我们提取索引i;如果不存在这样的字符,我们使用字符串的长度。
  • 最后,我们使用 s[:idx] 对字符串进行切片,直到但不包括计算出的索引。

关于python - 如何找到字符串的第一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50623028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com