"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
用这个好像不行的 \{{.*}\}
\{[^\{^\}]*\}
那个好像是不行啊
@月下诗: 你的源文件用的是“[”而不是“{”,你可以做相应调整:“\{[^\[^\]]*\}”
如果你要capture “{}”中的文字,可以 “\{([^\{^\}]*)\}”
@Jerry Chou: 那个是可以拿到 ,不过我是要里面的内容啊 不要 两边的{} 或者[] 什么的啊
@月下诗: 这就是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: 可以了 谢谢
试试这个: \{(.*)\} 取匹配结果的第一个分组。
‘{’ ‘}’ 是关键字,需要用转义字符表示,分组的符号是(),而不是{}。
我开始的时候就是用的这个 好像在C#里面存在换行 就不行了的 用那个软件还是行的
@月下诗:
存在换行的话,在匹配的时候加一个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);