Html部分源码
post" action="../cmd.asp?act=SettingSav">
<div id="divMain2">
<ul>
<li class="tabs-selected"><a href="#fragment-1"><span>基础设置</span></a></li>
<li><a href="#fragment-2"><span>全局设置</span></a></li>
<li><a href="#fragment-3"><span>页面设置</span></a></li>
<li><a href="#fragment-4"><span>静态目录配置及文件重建设置</span></a></li>
<li><a href="#fragment-5"><span>UBB设置及相关转换</span></a></li>
<li><a href="#fragment-6"><span>WAP设置</span></a></li>
</ul>
<div class="tabs-div" style='border:none;padding:0px;margin:0;' id="fragment-1"><table width='100%' style='padding:0px;margin:1px;' cellspacing='0' cellpadding='0'><tr><td style='width:32%'><p align='left'>·BLOG的地址</p></td><td style="width:68%"><p><input id="edtZC_BLOG_HOST" name="edtZC_BLOG_HOST" style="width:95%" type="text" value="http://xxxxx.com/" /></p></td></tr><tr><td style='width:32%'><p align='left'>·BLOG的名称</p></td><td style="width:68%"><p><input id="edtZC_BLOG_NAME" name="edtZC_BLOG_NAME" style="width:95%" type="text" value="你的Blog名称" /></p></td></tr><tr><td style='width:32%'><p align='left'>·BLOG的简介</p></td><td style="width:68%"><p><input id="edtZC_BLOG_SUB_NAME" name="edtZC_BLOG_SUB_NAME" style="width:95%" type="text" value="欢迎使用Z-Blog,有问题或意见请<p align='left'>·WEB编辑器<p>可设为fckeditor等,为空值则不启用WEB编辑</p></p></td><td style="width:68%"><p><input id="edtZC_BLOG_WEBEDIT" name="edtZC_BLOG_WEBEDIT" style="width:95%" type="text" value="fckeditor" /></p></td></tr><tr><td style='width:32%'><p align='left'>·允许上传文件的类型<p>以|做为分隔</p></p></td><td style="width:68%"><p><input id="edtZC_UPLOAD_FILETYPE" name="edtZC_UPLOAD_FILETYPE" style="width:95%" type="text" value="jpg|gif|png|jpeg|bmp|psd|wmf|ico|rpm|deb|tar|gz|sit|7z|bz2|zip|rar|xml|xsl|svg|svgz|doc|xls|wps|chm|txt|pdf|mp3|avi|mpg|rm|ra|rmvb|mov|wmv|wma|swf|fla|torrent|zpi|zti" /></p></td></tr><tr><td style='width:32%'><p align='left'>·上传文件的最大字节数</p></td><td style="width:68%"><p><input id="edtZC_UPLOAD_FILESIZE" name="edtZC_UPLOAD_FILESIZE" style="width:95%" type="text" value="10485760" /></p></td></tr><tr><td style='width:32%'><p align='left'>·上传附件按"年/月"目录保存</p></td><td style="width:68%"><p><input id="edtZC_UPLOAD_DIRBYMONTH" name="edtZC_UPLOAD_DIRBYMONTH" style="" type="checkbox" value="False" class="pointer" ONCLICK="ChangeValue(this);"/></p></td></tr><tr><td style='width:32%'><p align='left'>·启用RSS的全文输出/p></td><td style="width:68%"><p><input id="edtZC_COMMENT_COUNT_WAP" name="edtZC_COMMENT_COUNT_WAP" style="width:95%" type="text" value="3" /></p></td></tr><tr><td style='width:32%'><p align='left'>·WAP文章列表分页页码条长度</p></td><td style="width:68%"><p><input id="edtZC_PAGEBAR_COUNT_WAP" name="edtZC_PAGEBAR_COUNT_WAP" style="width:95%" type="text" value="5" /></p></td></tr><tr><td style='width:32%'><p align='left'>·WAP单页文章文字数</p></td><td style="width:68%"><p><input id="edtdth:68%"><p><input id="edtZC_WAPCOMMENT_ENABLE" name="edtZC_WAPCOMMENT_ENABLE" style="" type="checkbox" value="False" ONCLICK="ChangeValue(this);"/></p></td></tr></table></div><p style='display:none;'>·当前Z-Blog程序版本 :</p><p style='display:none;'><input id="edtZC_BLOG_VERSION" name="edtZC_BLOG_VERSION" style="width:95%" type="text" value="1.8 Walle Build 100427" readonly/></p><p><br/><input type="submit" class="button" value="提交" id="btnPost" onclick='' /></p>
</div></form></div>
<script language="javascript">
需求
获取设置信息的key-value以及id
比如(图片中的第一行)
Key:Blog的地址
value:http://xxxxx.com
id:edtZC_BLOG_HOST
对应的正则表达式
<p\s+align='left'>(?<key>.*?)</p>.*?id=\"(?<id>.*?)\".*?value=\"(?<value>.*?)\"
出现的问题
以上正则表达式会跳过标签为:textarea的内容(上图的倒数第二行)
所以,会出现以下结果:
key:BLOG版权说明可以放置备案号和统计代码,支持HTML代码,可用“br”标签换行
value:拥有者(匹配到最后一行)
id:edtZC_BLOG_COPYRIGHT
很简单,<input>
的内容是在标签上边的value=""属性中的,<textarea>
的内容是在标签里边用括住的。你的正则表达式只能适应一种目的。
另外求你别用正则这么分析HTML内容,因为源稍微一改就要疲于奔命改匹配,会死的。
好好的用一个HTML解析库,例如Python/Py3K的BeautifulSoup4。
另外无论是用正则凑合,还是真的用HTML解析库,都一个必要注意的问题:必须分解步骤,不要试图一次找准。必须先把表格分解成每一行(<tr>...</tr>
),然后在行内再做详细的查找。这样起码在出问题的时候,把问题能够约束在当前行之内,不会1行解析有问题就“牵一发而动全身”。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。