如何用正则表达式提取各表单项的各属性值到数组?

字符串如下:
<P><INPUT title=单行输入框 style="WIDTH: 184px; HEIGHT: 21px" size=23 value="111 11" name=ttt></P>
<P><TEXTAREA title=多行输入框 name=2>111 11</TEXTAREA></P>
<P><SELECT title=下拉菜单 name=3><OPTION value=11 selected>11</OPTION><OPTION value=22>22</OPTION><OPTION value=33>33</OPTION><OPTION value=44>44</OPTION><OPTION value=55>55</OPTION></SELECT></P>
<P><INPUT title=选择框 type=checkbox CHECKED value=1 name=4></P>
<P><SELECT title=列表控件 style="WIDTH: 60px" size=5 name=5><OPTION value=0 selected>0</OPTION><OPTION value=1>1</OPTION><OPTION value=2>2</OPTION><OPTION value=3>3</OPTION><OPTION value=4>4</OPTION></SELECT></P>
<P><INPUT title=日历控件 readOnly name=6 kind="DATE"><IMG style="CURSOR: hand" onclick='SelectDate("6","yyyy-mm-dd")' height=26 src="images/form/calendar.gif" width=26 align=absMiddle name=6_btnImg></P>
<P><INPUT title=宏控件 value=宏控件:部门选择框 name=7 kind="macro" macroType="macro_dept_select" macroDefaultValue="777"></P>

需要提取INPUT、SELECT、TEXTAREA的各属性项如name,title,value等的值到一个二维数组,如:
{INPUT,ttt,单行输入框,111 11}
{SELECT,1,下拉菜单,11}
{TEXTAREA,2,多行输入框,111 11}

正则都写不出来,只能帮你匹配到前三个

(?im)^<p><(\w+?) title=(.*?) .*?name=((?! ).*?)(>| .*>)

最后一个VALUE没办法,你的SELECT里面有那么多OPTION,每个OPTION又有一个VALUE,我无能为力.
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-10-29
这个问题我先搜藏!有时间再来帮你解决下!
相似回答
大家正在搜