对不起,是否曾经有人问过这个问题,但是我找不到任何可以满足我需要的答案...:(
基本上,我有一堆产品标题,有些以结尾(SKU)结尾,有些则没有。
所有SKUS将以数字结尾。在“伪”中:如果最后一个单词的最后一个字符是数字,则删除最后一个单词。 -这实际上不是一个单词,而是一个数字。
这里是一个示例:“中型赛车后背和短休息室套装 7091 ”(如果最后一个字符是数字,我想删除粗体部分)
一如既往,在此先感谢您的帮助:)
D
答案 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
用作工作表中的用户定义功能:
正则表达式:
[^\s]\d+$
匹配[^ \ s]下面列表中不存在的单个字符
\s
匹配任何空白字符(等于[\ r \ n \ t \ f \ v])
\d+
匹配一个数字(等于[0-9])
+
量词-在一次和无限次之间进行匹配,并尽可能多地匹配,并根据需要返回(贪婪)