首页 新闻 搜索 专区 学院

C# 提取中括号内容的正则表达式

0
悬赏园豆:15 [已解决问题] 解决于 2013-03-01 13:06

"4.{\r\n我公司的全称是“广东移动通信有限责任公司深圳公司”,\r\n英文名称是:Guangdong Mobile Communications Co., LTD. Shenzhen Branch\r\n}\r\n答案:正确\r\n题型:判断题"

得到这个

\r\n我公司的全称是“广东移动通信有限责任公司深圳公司”,\r\n英文名称是:Guangdong Mobile Communications Co., LTD. Shenzhen Branch\r\n

 

 

用这个好像不行的  \{{.*}\}  

考虑到五岁的限制的主页 考虑到五岁的限制 | 初学一级 | 园豆:53
提问于:2013-03-01 10:00
< >
分享
最佳答案
0

\{[^\{^\}]*\}

收获园豆:10
Jerry Chou | 老鸟四级 |园豆:2642 | 2013-03-01 10:04

那个好像是不行啊  

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-01 10:08

@月下诗: 你的源文件用的是“[”而不是“{”,你可以做相应调整:“\{[^\[^\]]*\}”

如果你要capture “{}”中的文字,可以 “\{([^\{^\}]*)\}”

Jerry Chou | 园豆:2642 (老鸟四级) | 2013-03-01 10:11

@Jerry Chou: 那个是可以拿到  ,不过我是要里面的内容啊  不要 两边的{} 或者[] 什么的啊 

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-01 10:21

@月下诗: 这就是CaptureGroup,你用"\{([^\{^\}]*)\}"

然后 var match = Regex.Match(input, "\{([^\{^\}]*)\}");

var result  = match.Captures[0].value;

result就是你要的字符串。

http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.group.captures.aspx

Jerry Chou | 园豆:2642 (老鸟四级) | 2013-03-01 10:26

@Jerry Chou: 可以了 谢谢

考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-01 13:06
其他回答(1)
0

试试这个: \{(.*)\}     取匹配结果的第一个分组。

‘{’   ‘}’ 是关键字,需要用转义字符表示,分组的符号是(),而不是{}。

收获园豆:5
天方 | 园豆:5266 (大侠五级) | 2013-03-01 10:07

我开始的时候就是用的这个  好像在C#里面存在换行   就不行了的   用那个软件还是行的  

支持(0) 反对(0) 考虑到五岁的限制 | 园豆:53 (初学一级) | 2013-03-01 10:12

@月下诗: 

存在换行的话,在匹配的时候加一个RegexOptions.Singleline的选项就可以了。代码示例:

    var input = "4.{\r\n我公司的全称是“广东移动通信有限责任公司深圳公司”,\r\n英文名称是:Guangdong Mobile Communications Co., LTD. Shenzhen Branch\r\n}\r\n答案:正确\r\n题型:判断题";
    var match = Regex.Match(input, @"\{(.*)\}", RegexOptions.Singleline);
    Console.WriteLine(match.Groups[1].Value);
支持(0) 反对(0) 天方 | 园豆:5266 (大侠五级) | 2013-03-01 10:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册