c# 正则表达式的问题 需要两个简单的正则提取代码 测试通过50分立刻结 在线等
一点C#不会 被强制拉来改一小段C#代码 是正则提取html元素的 然后html内容结构更新了一小下 领导觉得很简单让我去改……我易做图啥也不会C#需求如下
第一处
//要提取操作的变量:rhtml
//类型 string
//内容样例 !#$@^%$#%&^$%Q#$<script src="/static/dynJs.php?jsversion=8834&method=loginJs" type="text/javascript"></script>
//其中 html各个属性之间可能出现空格换行制表符(html和js特性决定存在空格或者制表符不影响解释) 但是src内不会出现多余空格或者换行 要求提取出这个src的值 不含首尾双引号 保存到string变量 rjssrc内
第二处
//要提取操作的变量:rjs
//类型 string
//内容 rjs是一段javascript的完成代码 我们要提取其中一个变量定义 这个变量定义是这样的:
//var key='abcdefg==';
//或者
//var key="abcdefg==";
//就是说要兼容这个定义使用的是单引号还是双引号 同时 var和key之间 key和等号之间 双引号外前后都可能存在空格或者制表符或者换行需要兼容(html和js特性决定存在空格或者制表符不影响解释)其中abcdefg代表一个不定长度的随机字符串
//要求提取这个key的值 并不要这个值最后两位的两个base64标记的等号 保存在string类型变量rkey内
//
要求就是这两个 提交完整代码我直接覆盖程序现有代码测试通过立刻结分
c# 正则 --------------------编程问答--------------------
--------------------编程问答--------------------
//1
string s = "!#$@^%$#%&^$%Q#$<script src=\"/static/dynJs.php?jsversion=8834&method=loginJs\" type=\"text/javascript\"></script>";
string rhtml=System.Text.RegularExpressions.Regex.Match(s, "<script\\s+src=\"([^\"]+)\"").Groups[1].Value;
//2
string s = "var key=\"abcdefg==\";";
string rjs=System.Text.RegularExpressions.Regex.Match(s, "var\\s+key\\s*=\\s*\"([^\\=]+)").Groups[1].Value;
--------------------编程问答--------------------
string rjssrc = Regex.Match("你的内容", "<script src=\"(?<value>[\\S]+)\".*?></script>").Groups["value"].Value;
string rkey = Regex.Match("var key='abcdefg==';", "var[\\s]+key[\\s]*=[\\s]*(?:'([\\S]*?)'|\"([\\S]*?)\")").Groups.Cast<Group>().Where(x => (x.Index != 0 && !string.IsNullOrEmpty(x.Value))).First().ToString();
string rhtml=System.Text.RegularExpressions.Regex.Match(yourstr, @"(?is)<script\b.*?src=(['""])([^'""]+?)\1").Groups[2].Value;--------------------编程问答-------------------- 这么多人都答了,我就不写了,大同小异。你们为什么不直接让他
string rjs=System.Text.RegularExpressions.Regex.Match(yourstr, @"(?is)var\s+key\s*=(['""])([^'""]+)\1").Groups[2].Value;
using System.Text.RegularExpressions;
然后直接用Regex呢。。。 --------------------编程问答-------------------- 开了个小会 感谢楼上各位 马上去复制粘贴测试给分。。。 --------------------编程问答--------------------
抱歉 我没说明白 html内会有多个script 要去匹配这个src前半部分的是/static/dynJs.php 这个的 后面参数可能不同 要取回全部这个的整体 --------------------编程问答--------------------
抱歉 我没说明白 第一个html内会有多个script 要去匹配这个src前半部分的是/static/dynJs.php 这个的 后面参数可能不同 要取回全部这个的整体 --------------------编程问答--------------------
using System.Text.RegularExpressions;--------------------编程问答--------------------
string yourhtml="balabalba";
Regex reg=new Regex(@"(?is)<script\b.*?src=(['""])(/static/dynJs.php\?[^'""]+?)\1");
string rhtml= reg.Match(yourhtml).Groups[2].Value;
string rjs=Regex.Match(yourstr, @"(?is)var\s+key\s*=(['""])([^'""]+)\1").Groups[2].Value;
string s = "!#$@^%$#%&^$%Q#$<script src=\"/static/dynJs.php?jsversion=8834&method=loginJs\" type=\"text/javascript\"></script>";
System.Text.RegularExpressions.Regex.Match(s, "<script\\s+src=\"/static/dynJs.php\\?([^\"]+)\"").Groups[1].Value;
--------------------编程问答-------------------- 1//
<script\\s+src=\"/static/dynJs.php\\?([^\"]+)\"
//2
var\\s+key\\s*=\\s*[\"|']([^\\=\"\']+)
补充:.NET技术 , C#