首页 新闻 会员 周边 捐助

C# 写个正则匹配html中的JS文件

0
悬赏园豆:30 [已解决问题] 解决于 2016-09-23 12:50

..求写个正则,十分感谢。如何获取JS脚本文件的路径

TheSongOfSoul的主页 TheSongOfSoul | 初学一级 | 园豆:104
提问于:2016-07-29 15:22
< >
分享
最佳答案
0

List<string> srcList=new List<string>();

string pattern="<script[^>]*?src=\"([^>]*?)\"[^>]*?>";

MatchCollection mcs=Regex.Matchs(html,pattern,RegexOptions.IgnoreCase);

foreach(Match m in mcs)

{

  srcList.Add(m.Groups[1].Value);

}

收获园豆:30
Yu | 专家六级 |园豆:12990 | 2016-07-30 21:52

十分感谢、

TheSongOfSoul | 园豆:104 (初学一级) | 2016-08-02 10:39
其他回答(2)
0
        List<string> GetJsFiles(string htmlPath)
        {
            List<string> jsFiles = new List<string>();
            string spacePattern = @"\s*";
            string srcPattern = string.Format("src{0}={0}\"(?<srcPath>[^\"]*)\"", spacePattern);
            string scriptPattern = string.Format(@"\<script[^\>]*{0}[^\>]*\>", srcPattern);
            string htmlContent = File.ReadAllText(htmlPath);
            MatchCollection ms = Regex.Matches(htmlContent, scriptPattern, RegexOptions.IgnoreCase);
            if (ms.Count > 0)
            {
                for (int i = 0; i < ms.Count; i++)
                {
                    if (ms[i].Success)
                    {
                        string srcPath = ms[i].Groups["srcPath"].Value;
                        jsFiles.Add(srcPath);
                    }
                }
            }
            return jsFiles;
        }

 

ArthurLi | 园豆:686 (小虾三级) | 2016-07-29 16:01

支持(0) 反对(0) TheSongOfSoul | 园豆:104 (初学一级) | 2016-07-29 16:25

  你好,请问这是怎么回事?

支持(0) 反对(0) TheSongOfSoul | 园豆:104 (初学一级) | 2016-07-29 16:26

@TheSongOfSoul: 路径需要是一个本地文件路径

支持(0) 反对(0) ArthurLi | 园豆:686 (小虾三级) | 2016-07-29 16:28

@Don'tWorryBeHappy: 

 <script\s+(?:.*?)src=(?:"|')?(.+?)(?:"|'|\s)+   这个就是匹配HTML中JS文件的一个正则,可是不知道则么用
支持(0) 反对(0) TheSongOfSoul | 园豆:104 (初学一级) | 2016-07-29 16:30

@TheSongOfSoul: https://msdn.microsoft.com/zh-cn/library/b49yw9s8(v=vs.110).aspx

可以参考这个链接

支持(0) 反对(0) ArthurLi | 园豆:686 (小虾三级) | 2016-07-29 16:34
0

(?<=<script src=").*?(?=")

刘宏玺 | 园豆:14020 (专家六级) | 2016-07-29 16:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册