首页新闻找找看学习计划

谁给写个正则表达式,需要读取指定区间的内容。

0
悬赏园豆:10 [已解决问题] 解决于 2013-09-05 11:18

开始字符:{$

结束字符:$}

字符串:<a {$code$}>{$name$}{$value$}</a>

 

每次可以读取一个就行,能够批量读取出来就更好。开始字符和结束字符都是可以自定义的。

谁正则用得好给写个呗。

迷路中的路人甲的主页 迷路中的路人甲 | 初学一级 | 园豆:93
提问于:2013-09-05 10:19
< >
分享
最佳答案
0
\{(?<tag>[^\}]*)\}

取tag 就行。

收获园豆:10
````` | 专家六级 |园豆:14268 | 2013-09-05 10:42

Regex rg = new Regex("(?<tag>({$[^#]+?$}))", RegexOptions.Multiline | RegexOptions.Singleline);
response.write (rg.Match(str).Value);

 

这么写吗? 不好用呀

迷路中的路人甲 | 园豆:93 (初学一级) | 2013-09-05 10:51

@迷路中的路人甲: 

var value = "<a {$code$}>{$name$}{$value$}</a>";
            Regex rg = new Regex(@"\{(?<tag>[^\}]*)\}");


            foreach (Match item in rg.Matches(value))
            {
                Console.WriteLine(item.Groups["tag"]);
            }
            Console.Read();
````` | 园豆:14268 (专家六级) | 2013-09-05 10:55

@迷路中的路人甲: 

var value = "<a {$code$}>{$name$}{$value$}</a>";
            Regex rg = new Regex(@"\{(?<tag>[^\}]*)\}");


            foreach (Match item in rg.Matches(value))
            {
                Console.WriteLine("{0}:{1}", item.Value, item.Groups["tag"]);
            }
            Console.Read();

原始值item.Value,内容item.Groups["tag"]   之后找到item.Groups["tag"]对应的内容,替换item.Value就可以了。

````` | 园豆:14268 (专家六级) | 2013-09-05 10:58

@imfunny: 

THX,我想要匹配的是不定的字符串怎么改?

你这个最后输出的结果只是匹配了{},我需要匹配{$  $}或者其他类似的。是需要可以自定义的。

要怎么改,我自己改了一下,不好用。还是要麻烦你了。

迷路中的路人甲 | 园豆:93 (初学一级) | 2013-09-05 11:02

@迷路中的路人甲: 

\{\$(?<tag>[^\$}]*)\$}

这个是那种匹配。

````` | 园豆:14268 (专家六级) | 2013-09-05 11:04

@imfunny: 

如果我需要动态替换的话。是不是开始字符串需要替换红色部分,结束字符直接替换绿色部分。

\{\$(?<tag>[^\$}]*)\$}
\{\$(?<tag>[^\$}]*)\$}
迷路中的路人甲 | 园豆:93 (初学一级) | 2013-09-05 11:11

@迷路中的路人甲: 是的。注意好 有的需要转义字符有的不需要。

````` | 园豆:14268 (专家六级) | 2013-09-05 11:12

@imfunny: 

THX,我找找需要转移的字符。多谢了。

迷路中的路人甲 | 园豆:93 (初学一级) | 2013-09-05 11:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册