从字母数字字符串中删除整数

时间:2019-06-03 21:29:04

标签: excel vba

我在寻找一种方法来从单元格中删除浮点整数而不删除附加到字符串末尾的数字时遇到了麻烦。关于如何解决此问题,我可以获得一些帮助吗?

例如,在所附的图像中,而不是:
john123 456 hamilton,我想要:
john123 hamilton

image

1 个答案:

答案 0 :(得分:1)

这可以使用正则表达式来完成。您将对要删除的数据进行匹配,然后用空字符串替换此数据。

由于您未提供任何代码,所以我所能做的就是为您提供可以在自己的项目中实现的功能。此功能可以在VBA中使用,也可以用作工作表功能,例如=ReplaceFloatingIntegers(A1)

  

您需要通过转到工具参考文献< / kbd>在VBE菜单中。

Microsoft VBScript Regular Expressions 5.5

打破常规

  • Function ReplaceFloatingIntegers(Byval inputString As String) As String With New RegExp .Global = True .MultiLine = True .Pattern = "(\b\d+\b\s?)" If .Test(inputString) Then ReplaceFloatingIntegers = .Replace(inputString, "") Else ReplaceFloatingIntegers = inputString End If End With End Function 这是一个捕获组。在该组中捕获的所有内容都可以用( ... )函数替换。
  • .Replace()这是一个单词边界。之所以使用它,是因为我们要从头到尾测试所有“单词”(在我们的案例中包括仅包含数字的单词)。
  • \b会将任意一位(\d+\b)的数字匹配\d至下一个单词边界+
  • \b将匹配一个空格字符,但是如果存在此字符,则它是可选的\s?

您可以查看此个性化的Regex101页,以了解它与您的数据的匹配情况。此处匹配的所有内容都将替换为空字符串。