String 从单个字符串中分离复杂文本和数字模式
我有一个类似这样的文本文件(但有数百行): 我创建了一个代码,将文本文件中的所有内容逐行提取出来,去掉开头的数字并保存下一部分(即String 从单个字符串中分离复杂文本和数字模式,string,excel,vba,sorting,String,Excel,Vba,Sorting,我有一个类似这样的文本文件(但有数百行): 我创建了一个代码,将文本文件中的所有内容逐行提取出来,去掉开头的数字并保存下一部分(即糖浆:DR.PEPPER 5GALLON/BOX,万能覆盆子FIL 40#)到Mid(nextLine,10,30)。我想把那部分分成两部分,把名字(糖浆:DR.PEPPER,万能覆盆子丝),大小(5GALLON,40#)这个大小的数字(如果是12/1#=12x1lb)和单位(BOX,LB)。正如你所看到的,几乎每一行都不同,但有许多相似之处。我不确定下一步该怎么办。
糖浆:DR.PEPPER 5GALLON/BOX
,万能覆盆子FIL 40#
)到Mid(nextLine,10,30)
。我想把那部分分成两部分,把名字(糖浆:DR.PEPPER
,万能覆盆子丝
),大小(5GALLON
,40#
)这个大小的数字(如果是12/1#
=12x1lb
)和单位(BOX
,LB
)。正如你所看到的,几乎每一行都不同,但有许多相似之处。我不确定下一步该怎么办。我一直在尝试使用:
re.Pattern = "GALLON|BOX|#|LF|GAL|EA|CS|BTLS"
我想把单位部分拔出来,但我不知道还能做什么
以下是我到目前为止为这一部分编写的代码:
Function NumericOnly(s As String) As String
Dim StrUnit As String
Static re As RegExp
If re Is Nothing Then Set re = New RegExp
re.IgnoreCase = True
re.Global = True
re.Pattern = "GALLON|BOX|#|LF|GAL|EA|CS|BTLS"
StrUnit = re.Replace(s, "")
End Function
你试过正则表达式吗?是的,但我唯一能想到的是:re.Pattern=“galler | BOX |#| LF | GAL | EA | CS | BTLS”你应该发布实际的正则表达式。编辑:或者这就是你正在使用的?Edit2:选中。函数NumericOnly(s作为字符串)作为字符串Dim StrUnit作为字符串Static re作为RegExp如果re为空,则设置re=New RegExp re.IgnoreCase=True re.Global=True re.Pattern=“gallen | BOX | LF | GAL | EA | CS | BTLS”StrUnit=re.Replace(s)”。结束函数对列的文本不起作用吗?您可以迭代并运行它三次,也可以运行任意多次来拆分内容。。。如果你想避开正则表达式,我想。
Function NumericOnly(s As String) As String
Dim StrUnit As String
Static re As RegExp
If re Is Nothing Then Set re = New RegExp
re.IgnoreCase = True
re.Global = True
re.Pattern = "GALLON|BOX|#|LF|GAL|EA|CS|BTLS"
StrUnit = re.Replace(s, "")
End Function