请帮帮我。我和Regex有一个奇怪的错误:
Const AGC = "s$(.*)s"
Dim ORIGINAL As String = "s$1s"
Dim lel As Regex = New Regex(AGC)
Dim lol As Match = lel.Match(ORIGINAL)
MsgBox(lol.Success)
MsgBox(lol.Groups(0).Value)
以下代码不起作用,我不知道为什么。
答案 0 :(得分:2)
这是因为$
是一个特殊字符。你需要在正则表达式中逃避它:
Const AGC = "s\$(.*)s"
其余代码应该可以正常工作:
Const AGC = "s\$(.*)s"
Dim ORIGINAL As String = "s$1s"
Dim lel As Regex = New Regex(AGC)
Dim lol As Match = lel.Match(ORIGINAL)
MsgBox(lol.Success)
MsgBox(lol.Groups(0).Value)
在行动here中查看。
我在上一次修订中意外发布了这个答案的C#版本!
答案 1 :(得分:1)
$
是一个特殊的正则表达式字符,显示行尾。您必须使用\$
在regex表达式中实际指定美元字符。您的新表达式为"s\$(.*)s"
。当您对他们不熟悉时,请使用Regex Storm .Net tester等网站来测试您的正则表达式。链接到这个正则表达式及其测试: