如何从 excel 单元格中的文本字符串中删除数字

How to remove numbers from text strings in excel cells

我有一个 Excel 工作簿,其中包含 header 个单元格,如下所示:

  1. 生日645(1995年之前)
  2. 生日(1995年后)99

...

...

我想删除这些单元格中的所有数字,除了那些需要在那里的数字。在上面的示例中,除了 1995 之外,这些单元格中的任何其他数字都应删除。

有没有办法让我做这样的事情?比如在 Python?

中定义一个函数

根据上面的评论,假设括号定义明确,您可以使用此函数删除所有未嵌套在括号中的数字。

def remove_nums(string):
    depth = 0
    res = []
    for char in string:
        if char.isdigit() and depth == 0:
            continue
        elif char == '(':
            depth += 1
        elif char == ')':
            depth -= 1
        res.append(char)
        
    string = ''.join(res)
        
    # remove double spaces
    while '  ' in string:
        string = string.replace('  ', ' ')
        
    return string

if __name__ == "__main__":
    strings = ["birthday 645 (before 1995)", "birthday (after 1995) 99"]
    for string in strings:
        print(string+':',remove_nums(string))
In:  "birthday 645 (before 1995)"
Out: "birthday (before 1995)"
In:  "birthday (after 1995) 99"
Out: "birthday (after 1995)"