簡體   English   中英

如何使用正則表達式在Access VBA中拆分多個分隔符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM