在字符串中的子字符串后查找数字

时间:2018-02-03 17:40:54

标签: python regex string python-3.x python-2.7

想拥有能够在字符串中的子字符串后面找到数字的函数,例如:

Shape

最好的方法是什么?

2 个答案:

答案 0 :(得分:4)

正则表达式char(\d+)

详细说明:

  • \d匹配一个数字(等于[0-9]
  • +匹配一次且无限次
  • ()捕获小组

Python代码

字符串格式化语法"%s" % var%s标记允许插入(并可能格式化)字符串。

def find_number(text, c):
    return re.findall(r'%s(\d+)' % c, text)

find_number('abce123de34', 'e') >> ['123', '34']
find_number('abce123de34', 'de') >> ['34']

答案 1 :(得分:0)

以下程序有效。但它可以得到很大改善。

def func(string, sub):
    subpos = string.find(sub)
    new_string = string[subpos + 1:]
    for x in new_string:
        try:
            int(x)
        except:
            endpos = new_string.find(x)
            break

    num = string[subpos + 1:subpos + endpos + 1]
    return num

string = 'abc12de34fg'
sub = 'e'
num = func(string, sub)
print(num)