查找并替换美元符号

时间:2013-06-06 13:08:09

标签: regex vb.net

这不适合我:

            dim regex as Regex = New Regex("\b\$_GET\b")
            src = regex.Replace(src, "somthing")

返回原始字符串。

在长文件中尝试此操作时,我的内存也已耗尽:

            dim regex as Regex = New Regex("\$\b_GET\b")
            src = regex.Replace(src, "somthing")

注意:尝试查找和替换$_GET$foo等php变量。

3 个答案:

答案 0 :(得分:0)

单词边界(\b)在美元符号附近不是很有用,只需使用:

dim regex as Regex = New Regex("\$_GET\b")

答案 1 :(得分:0)

问题是,在“$ _GET”之前,没有word boundary \b

单词边界与从单词字符到非单词字符的变化匹配,或者相反。我假设在“$ _GET”之前有两个位置的字符串或空格的开头(在StartOfString和“$”,Whitespace和“$”之间)没有字边界。

你的第二个例子应该有用,因为“$”和“_”之间有一个单词边界。

您可以使用反向锚点。

dim regex as Regex = New Regex("\B\$_GET\b")

\B在“$”之前需要一个非单词字符,因为它是\b的否定。

答案 2 :(得分:0)

问题是正则表达式开头的word boundary \b,代码必须是:

dim regex as Regex = New Regex("\$_GET\b")