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