代码之家  ›  专栏  ›  技术社区  ›  quant

如何替换一系列字符,但如果它们是更大单词的一部分,则不替换?

  •  0
  • quant  · 技术社区  · 12 年前

    说我要替换字符串 BASE 具有 STUFF 但不在 BASELESS BASED 。这是原始字符串:

    THE BASE OF THIS STATEMENT IS A BASELESS BASE

    我想让它变成:

    THE STUFF OF THIS STATEMENT IS A BASELESS STUFF

    我有这样的东西

    Dim myString As String : myString = "THE BASE OF THIS STATEMENT IS A BASELESS BASE"
    myString = Replace(myString, "BASE ", "STUFF ")
    If Right(myString, 4) = "BASE" Then
      myString= Left(myString,Len(myString)-4) & "STUFF"
    End If
    

    但有没有更干净的方法?

    1 回复  |  直到 12 年前
        1
  •  0
  •   Alberto Fecchi    12 年前

    试试看:

    Dim regEx
    Set regEx = New RegExp
    regEx.Pattern = "BASE(?!\w)"
    regEx.IgnoreCase = True
    regEx.Global = True
    myString= regEx.Replace(myString, "STUFF")