【发布时间】:2011-12-15 19:16:12
【问题描述】:
我有这个正则表达式:
(?'box_id'\d{1,19})","box_name":"(?'box_name'[\w\d\.\s]{1,19})
这很好用,除非框名包含空格。例如,在my box 上执行它时,它返回mybox,没有空格。
如何使它在box_name 组中包含空格?
代码:
Regex reg = new Regex(@"""object_id"":""(?<object_id>\d{1,19})"",""file_name"":""(?<file_name>[\w.]+(?:\s[\w.]+)*)""");
MatchCollection matches = reg.Matches(result);
if ( matches == null) throw new Exception("There was an error while parsing data.");
if ( matches.Count > 0 )
{
FileArchive.FilesDataTable filesdataTable = new FileArchive.FilesDataTable();
foreach ( Match match in matches )
{
FileArchive.FilesRow row = filesdataTable.NewFilesRow();
row.ID = match.Groups["object_id"].Value;
row.Name = match.Groups["file_name"].Value;
}
}
输入:
{"objects":[{"object_id":"135248","file_name":"some space here.jpg","video_status":"0","thumbnail_status":"1"},{"object_id ":"135257","file_name":"jup 13.jpg","video_status":"0","thumbnail_status":"1"},{"object_id":"135260","file_name":"我的图片.jpg","video_status":"0","thumbnail_status":"1"},{"object_id":"135262","file_name":"EveningWav)es,Hon(olulu,Hawaii.jpg","video_status ":"0","thumbnail_status":"1"},{"object_id":"135280","file_name":"用空格测试.jpg","video_status":"0","thumbnail_status":"1 "}],"状态":"ok"}
【问题讨论】:
-
你能给我们一些你试图解析的字符串的例子吗?
-
类似:{"objects":[{"object_id":"135260","file_name":"my pic.jpg","video_status":"0","thumbnail_status":" 1"},{"object_id":"135261","file_name":"New Text Document.txt","video_status":"0","thumbnail_status":"0"}],"status":"ok" }
-
这里有两个文件名,my pic.jpg 和 New Text Document.txt
-
呃,如果这是json,为什么不用json解析库呢?
-
我需要特殊需求,JSON 库很好,但这里不是一个选项。
标签: c# regex regex-group