[英]How to split on multiple delimiters in access vba using regular expressions
我在解決如何使用Access VBA中的正則表達式拆分多個定界符時遇到問題。 我想用一個字符串說“ This; is,really:annoying”和一個由管道(; |,)分隔的用戶定義的定界符,以便獲得以下結果“ This”,“ is”,“ really:煩人的“無論我做什么我都無法讓這個工作。 在python中,我只會使用re.split,但是vba沒有我知道的選項。 我已經發布了我嘗試過的代碼:
Private Sub Splitter(ByVal UnmodText As String, ByVal SplitDelimiters As String)
Dim SplitExp As New RegExp
Dim SplitMatches As MatchCollection
Dim SplitMatch As Match
SplitExp.IgnoreCase = True
SplitExp.Global = True
'SplitExp.Pattern = ".(" & SplitDelimiters & ")" & "|(?<=" & SplitDelimiters & ").$"
'SplitExp.Pattern = ".{0,}(?=(" & SplitDelimiters & "))"
SplitExp.Pattern = "(?!(" & SplitDelimiters & "){2})"
MsgBox SplitExp.Pattern
Set SplitMatches = SplitExp.Execute(UnmodText)
For Each SplitMatch In SplitMatches
MsgBox SplitMatch.Value
Next
End Sub
任何幫助將不勝感激!
這將返回一個變體數組,給出一個要拆分的字符串,以及一個包含豎線分隔符的字符串。
Function SplitPlus(val As String, seps As String) As Variant
Dim x As Integer, arrSeps As Variant
Dim lb As Integer, ub As Integer
arrSeps = Split(seps, "|")
lb = LBound(arrSeps)
ub = UBound(arrSeps)
If ub > lb Then
For x = lb + 1 To ub
val = Replace(val, arrSeps(x), arrSeps(lb))
'Debug.Print val
Next x
End If
SplitPlus = Split(val, arrSeps(lb))
End Function
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.