Excel:如果它是一个数字,则删除字符串中的最后一个单词

时间:2018-11-09 09:44:04

标签: excel excel-formula

对不起,是否曾经有人问过这个问题,但是我找不到任何可以满足我需要的答案...:(

基本上,我有一堆产品标题,有些以结尾(SKU)结尾,有些则没有。

所有SKUS将以数字结尾。在“伪”中:如果最后一个单词的最后一个字符是数字,则删除最后一个单词。 -这实际上不是一个单词,而是一个数字。

这里是一个示例:“中型赛车后背和短休息室套装 7091 ”(如果最后一个字符是数字,我想删除粗体部分)

一如既往,在此先感谢您的帮助:)

D

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式替换结束号。使用模式"\s\d+$"消除结尾的空白。

Option Explicit

Public Sub test()

    Debug.Print GetString("Medium Racer Back Top And Short Lounge Set 7091")

End Sub

Public Function GetString(ByVal inputString As String) As Variant
    With CreateObject("vbscript.regexp")
        .Global = True
        .MultiLine = True
        .IgnoreCase = True
        .Pattern = "[^\s]\d+$"    '<==  \s\d+$   '<==to remove white space at end as well
        If .test(inputString) Then
            GetString = .Replace(inputString, vbNullString)
        Else
            GetString = inputString
        End If
    End With
End Function

用作工作表中的用户定义功能:

enter image description here


正则表达式:

Try it

[^\s]\d+$

匹配[^ \ s]下面列表中不存在的单个字符

\s匹配任何空白字符(等于[\ r \ n \ t \ f \ v])

\d+匹配一个数字(等于[0-9])

+量词-在一次和无限次之间进行匹配,并尽可能多地匹配,并根据需要返回(贪婪)