0


Python正则表达式查找最长数字子串(好未来2017笔试题)

问题描述:读入一个字符串str,输出字符串str中的连续最长的数字串。

思路与代码:

def longest1(s):

'''查找所有连续数字'''

import re

t = re.findall('\d+', s)

if t:

    return max(t, key=len)

return 'No'

def longest2(s):

'''使用非数字作为分隔符'''

import re

t = re.split('[^\d]+', s)

if t:

    return max(t, key=len)

return 'No'

def longest3(s):

'''笨办法'''

result = []

t = []

# 遍历字符串中所有字符

for ch in s:

    # 遇到数字,记录到临时变量

    if '0'<=ch<='9':

        t.append(ch)

    elif t:

        # 遇到非数字,把临时变量中的连续数字记下来

        result.append(''.join(t))

        t = []

# 考虑原字符串以数字结束的情况

if t:

    result.append(''.join(t))

    

if result:

    return max(result, key=len)

return 'No'

s = 'ab1dc12ds2345r111111111'

print(longest1(s))

print(longest2(s))

print(longest3(s))

运行结果:

111111111

111111111

111111111


本文转载自: https://blog.csdn.net/dongfuguo/article/details/118704745
版权归原作者 dongfuguo 所有, 如有侵权,请联系我们删除。

“Python正则表达式查找最长数字子串(好未来2017笔试题)”的评论:

还没有评论