使用Regex查找和替换Substing
问题描述:
我试图用正则表达式替换Excel中的子串“AV-”。我创建了如下因素的功能,但它没有找到或更换比赛使用Regex查找和替换Substing
Sub simpleRegex()
Dim strPattern As String: strPattern = "[AV-]{AV-}"
Dim strReplace As String: strReplace = "ZS-"
Dim regEx As New RegExp
Dim strInput As String
Dim Myrange As Range
Set Myrange = ActiveSheet.Range("E" & (ActiveCell.Row))
If strPattern <> "" Then
strInput = Myrange.Value
strReplace = ""
With regEx
.Global = True
.IgnoreCase = False
.Pattern = strPattern
End With
If regEx.Test(strInput) Then
ActiveSheet.Range("E" & (ActiveCell.Row)).Value = (regEx.Replace(strInput, strReplace))
Else
MsgBox ("Not matched")
End If
End If
末次
答
这不是很清楚,你想不样本输入/输出做什么。但是,如果您只想将字符串“AV-”替换为“ZS-”,则您的模式应该是“AV-”。
此外,如果你不知道,有正则表达式测试网站,可以帮助你创建/测试你的正则表达式模式,因为复杂的可以得到很难读。我建议的一个网站是https://regex101.com/。请记住,不同语言的正则表达式的实现并不完全相同,但它至少可以帮助你接近。
+0
嗯,这基本上是我想要做的。感谢一百万,并为链接。 – Shauny
我假设你正在尝试学习一些东西,因为这可以用vba中的一行来完成'Myrange.Replace“AV-”,“ZS-”,xlPart,True' –
很难说什么是输入/输出的要求是,但你可以使用这样的东西 \t'ResultString = Regex.Replace(SubjectString,“(AV - )(。*)”,“ZS- $ 2-TRAILING”,RegexOptions.Multiline)'或什么斯科特已经提到。 – Greg