对不起伙计们,好像我没有清楚地解释我的问题。请允许我再次重新提出我的问题。
我使用WebClient下载整个网页,我将内容作为字符串
” ....... ..... var picArr =“/ d / manhua / naruto / 516 / 1.png | /d/manhua/naruto/516/2.png | /d/manhua/naruto/516/3.png | / d / manhua / naruto / 516 / 4.png | /d/manhua/naruto/516/5.png | /d/manhua/naruto/516/6.png | /d/manhua/naruto/516/7.png | / d /满华/鸣/ 516 / 8.png | /d/manhua/naruto/516/9.png | /d/manhua/naruto/516/10.png | /d/manhua/naruto/516/11.png | / d /张曼华/火影忍者/ 516 / 12.png | /d/manhua/naruto/516/13.png | /d/manhua/naruto/516/14.png | /d/manhua/naruto/516/15.png | / d /满华/鸣/ 516 / 16.png” ...... “;
在这个内容中,我想只得到一行
var picArr ="/d/manhua/naruto/516/1.png|/d/manhua/naruto/516/2.png|/d/manhua/naruto/516/3.png|/d/manhua/naruto/516/4.png|/d/manhua/naruto/516/5.png|/d/manhua/naruto/516/6.png|/d/manhua/naruto/516/7.png|/d/manhua/naruto/516/8.png|/d/manhua/naruto/516/9.png|/d/manhua/naruto/516/10.png|/d/manhua/naruto/516/11.png|/d/manhua/naruto/516/12.png|/d/manhua/naruto/516/13.png|/d/manhua/naruto/516/14.png|/d/manhua/naruto/516/15.png|/d/manhua/naruto/516/16.png"
现在我想使用正则表达式获取此字符串并获取picArr的值。
我的注册表是 var picArr =“([。] *)”
我认为圆点意味着任何角色。但它不起作用。 :(
有什么想法吗?
非常感谢
答案 0 :(得分:2)
/picArr =\"([^\"]+)\"/
如果我说得对,那就是你需要的。
答案 1 :(得分:1)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace ExtractFileNames
{
class Program
{
static void Main(string[] args)
{
string pageData = @"blah blah
var picArr =""/d/manhua/naruto/516/1.png|/d/manhua/naruto/516/2.png|/d/manhua/naruto/516/3.png|/d/manhua/naruto/516/4.png|/d/manhua/naruto/516/5.png|/d/manhua/naruto/516/6.png|/d/manhua/naruto/516/7.png|/d/manhua/naruto/516/8.png|/d/manhua/naruto/516/9.png|/d/manhua/naruto/516/10.png|/d/manhua/naruto/516/11.png|/d/manhua/naruto/516/12.png|/d/manhua/naruto/516/13.png|/d/manhua/naruto/516/14.png|/d/manhua/naruto/516/15.png|/d/manhua/naruto/516/16.png""
more blah decimal blah";
var match = Regex.Match(pageData, @"var\s+picArr\s*=\s*""(.*?)""");
var str = match.Groups[1].Value;
var files = str.Split('|');
foreach(var f in files)
{
Console.WriteLine(f);
}
Console.ReadLine();
}
}
}
输出:
/d/manhua/naruto/516/1.png
/d/manhua/naruto/516/2.png
/d/manhua/naruto/516/3.png
/d/manhua/naruto/516/4.png
/d/manhua/naruto/516/5.png
/d/manhua/naruto/516/6.png
/d/manhua/naruto/516/7.png
/d/manhua/naruto/516/8.png
/d/manhua/naruto/516/9.png
/d/manhua/naruto/516/10.png
/d/manhua/naruto/516/11.png
/d/manhua/naruto/516/12.png
/d/manhua/naruto/516/13.png
/d/manhua/naruto/516/14.png
/d/manhua/naruto/516/15.png
/d/manhua/naruto/516/16.png
答案 2 :(得分:0)
如果您只想获取文件名,可以在管道上进行拆分:
var picArr = "/d/manhua/naruto/516/1.png|/d/manhua/naruto/516/2.png|/d/manhua/naruto/516/3.png|/d/manhua/naruto/516/4.png|/d/manhua/naruto/516/5.png|/d/manhua/naruto/516/6.png|/d/manhua/naruto/516/7.png|/d/manhua/naruto/516/8.png|/d/manhua/naruto/516/9.png|/d/manhua/naruto/516/10.png|/d/manhua/naruto/516/11.png|/d/manhua/naruto/516/12.png|/d/manhua/naruto/516/13.png|/d/manhua/naruto/516/14.png|/d/manhua/naruto/516/15.png|/d/manhua/naruto/516/16.png";
var splitPics = picArr.Split('|');
foreach (var pic in splitPics)
{
Console.WriteLine(pic);
}
答案 3 :(得分:0)
看起来你想要你的代码片段中的字符串文字的值,“/ d /manhua / naruto / 516 / 1.png | ...”
摆脱方括号。 “”匹配任何字符,没有括号。方括号用于匹配有限的字符集:例如,您使用“[abc]”匹配任何“a”,“b”或“c”。
看起来括号具有逃避“。”的效果,这是我不知道的一个特征(或者在奥陶纪的某个时候忘了)。但是我测试了正则表达式,因为字符串值被一系列点替换,正则表达式匹配。它被视为文字“。”你更有可能尝试与反斜杠转义匹配的字符:“\。”
所以只需摆脱括号,它应该工作。它适用于VS2008。