内容特点:
#=xxxx==
或
#=xxxx=
其中#=为固定开头,==或=为固定结尾
xxxx为任意的数字、字母、下划线、$符号
要求替换后的结果是:
xxxx的不含$符号的内容,同时 把 $ 使用下划线替代
比如:#=q4_2$mj41Q$lP1JteYkd7oATy$jtaLM9$PfPO3O8Z5HY= 希望得到 q4_2_mj41Q_lP1JteYkd7oATy_jtaLM9_PfPO3O8Z5HY
同时,如果 xxxx 是以数字开头,则自动添加下划线(当然,直接强制添加下划线也可以)
问题解决了。
1、VS 2008的查找替换正则表达式是自己的一套
2、通过参考VS 2008的正则表达式编写文档,完成了查询
3、不能替换。始终 \1 是空的,不知道是否我写的VS 2008的查找正则表达式有问题。
4、2013上的正则表达式是大众版本的。
谢谢各位。
(?<=\=)(.*?)(?=\=)
/^#=([A-Za-z0-9_$]+)(=|==)$/
js:
参考我的博客中的一篇正则30分钟精通教程:
http://www.cnblogs.com/hanxianlong/archive/2009/11/24/1609834.html
你测试下
Regex x = new Regex("(#=)(.*)(={1,2})"); string str = "dsfgsdagasgs#=q4_2$mj41Q$lP1JteYkd7oATy$jtaLM9$PfPO3O8Z5HY=dafafdafaf"; var newStr = x.Matches(str); if (newStr.Count > 0) foreach (var s0 in newStr) { string s1 = Regex.Replace(s0.ToString(), "\\$", ""); string s2 = Regex.Replace(s1.ToString(), "(#=)", ""); string s3=s2.Remove(s2.Length-1,1); Console.WriteLine(s3); } Console.ReadKey();