正则表达式不起作用,2字符串之间的正则表达式

时间:2016-01-10 12:53:25

标签: regex vb.net

请帮帮我。我和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)

以下代码不起作用,我不知道为什么。

2 个答案:

答案 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等网站来测试您的正则表达式。链接到这个正则表达式及其测试:

http://regexstorm.net/tester?p=s%5c%24(.*)s&i=s%241s