当前位置: 代码迷 >> C# >> 一个复杂的正则表达式条件替换有关问题,
  详细解决方案

一个复杂的正则表达式条件替换有关问题,

热度:264   发布时间:2016-05-05 02:57:24.0
一个复杂的正则表达式条件替换问题,高手请进。
有一个字符串,string html = "......Name:<input type=\"text\" name=\"Name\"><br>Gender:<select name=\"Gender\"><option value=\"\"></option><option value=\"male\">Male</option><option value=\"female\">Female</option></select><br>Interests:<select name=\"Interest\" multiple><option value=\"singing\">Singing</option><option value=\"dancing\">Dancing</option><option value=\"drawing\">Drawing</option></select><br>Result:<textarea rows=\"4\" name=\"Result\"></textarea><br>......"

还有一个dic,是Dictionary类型,包含如下数据: {Name='Li Xiao', Age='12', Gender='Female', Interest='Dancing, Drawing', Result='Very good.'}

字符串里的name和dic里的key对应,但没有顺序,dic可能包含多余的字段。

可否用正则表达式把select的值带出来,并根据条件填入到不同的字段里?

input 类型的,直接加入一个 value=\"xxx\"
select 类型的,在option里添加 selcted
textarea 类型的,在</textarea>之前添加value

输出如下数据:
"......Name:<input type=\"text\" name=\"Name\" value=\"Li Xiao\"><br>Gender:<select name=\"Gender\"><option value=\"\"></option><option value=\"male\">Male</option><option value=\"female\" selected>Female</option></select><br>Interests:<select name=\"Interest\" multiple><option value=\"singing\">Singing</option><option value=\"dancing\" selected>Dancing</option><option value=\"drawing\" selected>Drawing</option></select><br>Result:<textarea rows=\"4\" name=\"Result\">Very good.</textarea><br>......"

------解决思路----------------------
这不是正则能做的事情,这应该是用htmlagilitypack来做的事情
或者xmlpath也可以
------解决思路----------------------
“做一个函数”,这是技术的词儿。而技术的词儿如果不落地,就没有内涵,解决不了半点问题。

你所谓的“正则不能做”还有点靠谱的内涵,而“函数来实现”就完全是空洞的了。
------解决思路----------------------
可以的,符合html标准不用html的方式解析,其规则也完全可以通过函数取得结果。