Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何使用函数或正则表达式删除单元格中的所有数字?_Regex_Excel_Worksheet Function - Fatal编程技术网

Regex 如何使用函数或正则表达式删除单元格中的所有数字?

Regex 如何使用函数或正则表达式删除单元格中的所有数字?,regex,excel,worksheet-function,Regex,Excel,Worksheet Function,我有这样的细胞,每行一个: 约翰·达菲:“遗产:文明 犹太人的大张旗鼓& 合唱、交响舞蹈+管弦乐 一套伯恩斯坦,“在镇上”的舞蹈 情节。皇家菲尔。/R.威廉姆斯 利莲,伊格纳斯1897-1963: 歌曲,1920-1935年。Anja van Wijk,中音& 弗朗斯·范鲁斯,钢琴 辛德米特,特劳尔穆斯克。“仙女 女王套房。罗西尼,弦乐奏鸣曲6。 彼得罗夫,“创造世界”芭蕾舞 一套巴托克,罗马尼亚民俗Sz 56塔尔蒂尼,G w.A.马约罗夫·列宁格勒奥奇长笛协奏曲,为古代 &现代音乐 比泽特、威

我有这样的细胞,每行一个:

约翰·达菲:“遗产:文明 犹太人的大张旗鼓& 合唱、交响舞蹈+管弦乐 一套伯恩斯坦,“在镇上”的舞蹈 情节。皇家菲尔。/R.威廉姆斯

利莲,伊格纳斯1897-1963: 歌曲,1920-1935年。Anja van Wijk,中音& 弗朗斯·范鲁斯,钢琴

辛德米特,特劳尔穆斯克。“仙女 女王套房。罗西尼,弦乐奏鸣曲6。 彼得罗夫,“创造世界”芭蕾舞 一套巴托克,罗马尼亚民俗Sz 56塔尔蒂尼,G w.A.马约罗夫·列宁格勒奥奇长笛协奏曲,为古代 &现代音乐

比泽特、威尔第、马塞内、普契尼:咏叹调 来自卡门、里戈莱托、维特、马农 莱斯科、托斯卡、图兰朵+歌曲 Lara,Di Capua等人,Peter 德沃斯基,男高音w.布拉迪斯拉发 奥奇/勒纳德也在表演《卡门》 公开和“泰国人”冥想。 现场记录,1987年10月

范蒂尼、劳赫、斯特劳斯、普里里、贝尔塔利: “朝廷的节日弥撒 维也纳,1648'约克郡巴赫合唱团& 巴洛克独奏家+巴洛克铜管乐队 伦敦/西摩

芬奇,莱昂纳多1690-1730:来自 地龙 阿班多纳塔,拉卡杜塔德西姆维里,洛城 塞卡托·福佐,巴科节日,凯通 在尤蒂卡。玛丽亚·安吉尔·彼得斯。 w、 卡拉罗先生

格鲁克、莫扎特、贝多芬、韦伯、威尔第、瓦格纳、庞切利、马斯卡尼、普契尼: 阿塞斯特的阿里亚斯,唐 乔瓦尼、菲德里奥、奥伯伦、巴洛、特里斯坦、沃库雷、齐格弗里德、戈特达默隆、乔康达、卡瓦莱里亚、托斯卡。 海琳·威尔德布伦。记录1919-24


我想删除所有数字。我如何使用公式来实现这一点?或者只是搜索并替换为regex?

如何使用VBA实现这一点

  • 打开Excel工作簿并通过以下方式粘贴您提供的文本:

  • 让这些行被选中

  • 按“ALT+F11”打开Visual Basic编辑器

  • 转到“插入”菜单并打开一个模块

  • 在此函数中键入:

  • Sub clear()
    s = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
    For Each r In Selection
    v = r.Value
    For i = 0 To 9
    v = Replace(v, s(i), "")
    Next
    r.Value = v
    Next
    End Sub
    
  • 单击绿色播放按钮以执行VBA脚本。

  • 返回工作表并查看结果(不再显示数字):


  • 更新:我无意中发布了一个包含函数而不是替换

    搜索并替换为正则表达式可以很好地工作,但您可能希望编辑文本的后置词(如数字前的逗号等)

    下面是函数。模式仅为=RegexReplace(单元格“\d”和“)


    我也遇到过类似的问题,但我走了另一条路,希望避免使用vba。对我来说,递归使用replacement起到了作用,如下所示:

    原始数据(A1:An,n=整数) 净资产收益率-1.00 市盈率0.07-0.85 ROC-ROE 0.02-0.03 等等

    代词(代词)(代词)(代词)(代词)(代词)(代词)(代词(代词)(A1,“1”,“0”,“0”,“2”,“3”,“4”,“4”,“6”,“5”,“7”,“7”,“9”,“8”,“9”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“9”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“9”,“8”,“9”,“8”,“

    它可以扩展为去掉“-”和十进制指示符“.”以及“+”(如果相关),最后,使用

    替换(替换(替换(替换)(替换(替换)(替换)(替换)(替换)(替换(替换)(替换)(替换(替换)(A1,“1”,“0”,“0”,“2”,“2”,“2”,“2”,“3”,“4”,“4”,“6”,“5”,“7”,“9”,“8”,“9”,“9”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“9”,“9”,“9”,“9”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“9”,“9”,“9”,“9”,“9”,“9”,“9”,“9”,“9”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“8”,“

    其中,小写表示在当前步骤中添加的复杂度

    通过将范围引用更改为要分析的整个数组(A1:An)并将公式作为数组输入(即使用Ctl+Enter而不是Enter来完成任务),可以自然地映射到整个数组

    然后我用len(B1)检查结果是否符合我的要求


    诚然,这并不优雅。但这可能是一个有用的练习,可以教学生“动态”思考和编码。

    是否要删除带有数字的破折号?所有可能模式的范围是多少?
    Function RegexReplace(ByVal text As String, _
                          ByVal replace_what As String, _
                          ByVal replace_with As String) As String
    
    Dim RE As Object
    Set RE = CreateObject("vbscript.regexp")
    
    RE.Pattern = replace_what
    RE.Global = True
    RegexReplace = RE.Replace(text, replace_with)
    
    End Function