微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我有一个带有标题单元格的 Excel 工作簿,如下所示:

  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)"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。