繁体   English   中英

Excel VBA 用循环查找和替换字符串中的文本

[英]Excel VBA Find & Replace Text In A String With Loop

我正在尝试替换模式"&CC[number]:[number]"之间的字符串中的所有文本,并将其替换为"=="

这是字符串。 "T &CC3:5 Q8 Party/ Self-Identify&CC6:8 Male&CC9:11 Female&CC12:15 Q1 Vote"

这就是我需要它看起来像T &CC3:5==&CC6:8==&CC9:11==&CC12:15==

我知道我需要遍历这个字符串,但我不确定设置它的最佳方法。

Dim stringOne As String
Dim regexOne As Object
Set regexOne = New RegExp

regexOne.Pattern = "([Q])+[0-9]"
regexOne.Global = False
stringOne = "T &CC3:5 Q8 Party/ Self-Identify&CC6:8 Male&CC9:11 Female&CC12:15 Q1 Vote"

Debug.Print regexOne.Replace(stringOne, "==")
End Sub

我也探索过使用这个正则表达式regexOne.Pattern = "([&])+[C]+[C]+[0-9]+[:]+[0-9]"

我计划最终将变量 stringOne 设置为Range("A1").Text

您可以稍微简化模式并使用捕获组和积极的前瞻

(&CC[0-9]+:[0-9]+).*?(?=&C|$)

解释

  • (捕获组 1
    • &CC[0-9]+:[0-9]+匹配&CC 1+ 位数字、: 和 1+ 位数字
  • )关闭群组
  • .*? 匹配 0+ 次除换行符以外的任何字符
  • (?=&C|$)正向前瞻,断言直接在右边的是&C或字符串的结尾

正则表达式演示

在替换中使用第一个捕获组后跟==

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM