如何在文本中找到x位数字?

1 投票
3 回答
2845 浏览
提问于 2025-04-18 18:44

有没有更好的(更有效率的)方法来在文本中找到x位数的数字(由x个数字组成的数字)?

我现在的方法是:

更新:

for n in range(0,len(text)):
    if  isinstance(text[n:n+x], (int)) and isinstance(text[n:n+x+1] is False:
        result = text[n:n+x]

return result

更新2:

for n in range(0,len(text)):
    try:  
       int(text[n:n+x])
       result = text[n:n+x]
    except:
       pass

return result

3 个回答

0

当然可以!请看下面的内容:

在编程中,我们经常会遇到一些问题,比如代码运行不正常或者出现错误。这时候,我们需要去查找原因,通常可以通过一些工具或者方法来帮助我们找到问题所在。

有时候,错误信息会告诉我们出错的地方,但有时候却不太明确。这就需要我们仔细分析代码,看看是不是哪里写错了,或者逻辑上有没有问题。

此外,很多编程语言都有调试工具,可以让我们逐行查看代码的执行情况,帮助我们更好地理解程序是如何运行的。

总之,遇到问题时,不要着急,慢慢分析,利用好工具,通常都能找到解决办法。

exampleText = "abcd12345xyz"

import re

match = re.search('\d+',exampleText)
print(match.group())
3

你可以使用正则表达式来实现这个功能。比如说,

>>> import re

>>> s = "abc 123 45678"
>>> re.search("(\d{5})\D",s).group()
'45678'

这个代码可以在字符串s中找到一个5位数的数字。如果你有多个数字要找,可以使用findall这个方法。

>>> s = "abc 123 45678\nbla foo 65432"
>>> re.findall("(\d{5})\D",s)
['45678', '65432']
3
import re                                             
string = "hello 123 world 5678 897 word"              
number_length = 3                                     
pattern= r"\D(\d{%d})\D" % number_length   # \D to avoid matching 567           
print re.findall(pattern, string)
["123","897"]

输出

撰写回答