gpt4 book ai didi

excel - 在分隔符VBA之间查找整个字符串片段的替换

转载 作者:行者123 更新时间:2023-12-04 21:07:59 35 4
gpt4 key购买 nike

我需要在 entire 上查找和替换用竖线分隔的字符串管道之间的子串
所以如果我的字符串看起来像AAAP|AAA TTT|AAA|000AAA|AAAP|AAA TTT|AAA|000AAA|AAAP|AAA TTT|AAA|AAAAAA可以在字符串中的任何位置。开始和/或结束或多次存在
我想替换AAAZZZ我需要的结果:AAAP|AAA TTT|ZZZ|000ZZZ|AAAP|AAA TTT|ZZZ|000ZZZ|AAAP|AAA TTT|ZZZ|ZZZ我得到的结果AAAP|ZZZ TTT|ZZZ|000 ...
如何将替换限制为整个子字符串

Sub ExtractSubstringReplace()
Dim strSource, strReplace, strFind, RegExpReplaceWord, r, a

strSource = "AAAP|AAA TTT|AAA|000"
strFind = "AAA"
strReplace = "ZZZ"

Dim re As Object
Set re = CreateObject("VBScript.RegExp")
re.Global = True
re.IgnoreCase = True
re.Pattern = "\b" & strFind & "\b"
RegExpReplaceWord = re.Replace(strSource, strReplace)

MsgBox RegExpReplaceWord

End Sub

最佳答案

您可以使用

re.Pattern = "(^|\|)" & strFind & "(?![^|])"
RegExpReplaceWord = re.Replace(strSource, "$1" & strReplace)
(^|\|)AAA(?![^|]) regex demo .注意它等于 (^|\|)AAA(?=\||$) .
细节:
  • (^|\|) - 捕获组 1:字符串开头或管道字符
  • AAA - 搜索字符串
  • (?![^|])/(?=\||$) - 确保存在 | 的前瞻或字符串的结尾紧挨当前位置的右侧。

  • 注意 : 如果你的 strFind可以包含特殊的正则表达式元字符,请确保使用 Regular Expression and embedded special characters 中的解决方案转义字符串.

    关于excel - 在分隔符VBA之间查找整个字符串片段的替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67707053/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com