正则表达式:帮忙看下一个正则的写法-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

正则表达式:帮忙看下一个正则的写法

2016-06-16 15:53:40 2629 2

screenshot

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

取消 提交回答
全部回答(2)
  • lookbigman
    2019-07-17 19:41:09

    请使用xpath 或者 BeautifulSoup4 python包

    0 0
  • 落地花开啦
    2019-07-17 19:41:09

    很简单,<input>的内容是在标签上边的value=""属性中的,<textarea>的内容是在标签里边用括住的。你的正则表达式只能适应一种目的。

    另外求你别用正则这么分析HTML内容,因为源稍微一改就要疲于奔命改匹配,会死的。

    好好的用一个HTML解析库,例如Python/Py3K的BeautifulSoup4。

    另外无论是用正则凑合,还是真的用HTML解析库,都一个必要注意的问题:必须分解步骤,不要试图一次找准。必须先把表格分解成每一行(<tr>...</tr>),然后在行内再做详细的查找。这样起码在出问题的时候,把问题能够约束在当前行之内,不会1行解析有问题就“牵一发而动全身”。

    0 0
添加回答
相关问答

1

回答

选择日志库一个简单的指导原则是什么?

2021-11-30 16:10:19 76浏览量 回答数 1

1

回答

有哪两种方法可以创建一个集合?

2021-10-31 17:31:35 109浏览量 回答数 1

1

回答

求写一个比较复杂的SQL:报错

2020-06-09 13:49:53 285浏览量 回答数 1

1

回答

递归算法的O复杂度

2019-12-12 09:58:45 981浏览量 回答数 1

2

回答

域名没有到期提示说到期了。弹出一个联系域名注册上的界面

2018-11-14 15:50:49 277浏览量 回答数 2

3

回答

大家好,我是小白,有一个很简单的问题想问下大家!

2018-10-16 09:35:17 357浏览量 回答数 3

2

回答

编写一个复制一棵二叉树的递归算法……

2018-07-19 10:19:07 1787浏览量 回答数 2

1

回答

求大神解决一个安卓问题

2016-06-01 11:13:09 1528浏览量 回答数 1

1

回答

关于一个简单的图形变换算法的问题

2016-03-17 10:18:35 1457浏览量 回答数 1

10

回答

我有一个想法

2012-08-14 13:14:00 12200浏览量 回答数 10
+关注
落地花开啦
喜欢技术,喜欢努力的人
0
文章
7824
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载