日期:2014-05-17  浏览次数:20939 次

区分数据提交到相应字段
姓名:张三
年龄:20
住址:北京市东区
个人主页:http://www.csdn.net



将个人信息提交到数据库,目前的功能是按这种标准格式提交4条数据,录入到相应字段里去
但是有些人提交的格式可能有出入,
比如冒号他用的是全角 或个人主页写的个人网址,年龄写的年纪
还有就是4条记录的顺序不一致
导致现有的程序无法识别。
有没有好的办法能准确识别区分后提交到数据库呢?


求大神现身帮助,给出思路和代码,谢谢

------解决方案--------------------
定义2个数组,一个数组用于存储数据库字段名称,另外一个对应的数组项上存储正则表达式的内容,将可能的前缀或者分隔符号加上,用正则来提取内容

VBScript code
s="年龄:20"&chr(10)&_
"住址:北京市东区"&chr(10)&_
"姓名:张三"&chr(10)&_
"个人主页:http://www.csdn.net"

arrfield=array("name","age","addr","site")
arrrx=array("^(姓名|名字)[::]([^\r\n]+)","^(年龄|年纪|岁数)[::]([^\r\n]+)","^(地址|住址)[::]([^\r\n]+)","^(个人主页|网址)[::]([^\r\n]+)")
set rx=new regexp
rx.Multiline=true
rx.Global=true
for i=0 to ubound(arrfield)
  rx.Pattern=arrrx(i)
  set mc=rx.Execute(s)
  if mc.count>0 then
     set m=mc(0)
    msgbox  arrfield(i)&":"&m.submatches(1)
  else
    msgbox "找不到和“"&arrfield(i)&"”匹配的内容"
  end if
next

set rx=nothing