当前位置: 代码迷 >> Sql Server >> 复杂字符串查找的有关问题
  详细解决方案

复杂字符串查找的有关问题

热度:4   发布时间:2016-04-24 10:16:50.0
复杂字符串查找的问题
截取一段,内容精简如下:
</TD><TD style="WORD-WRAP: break-word; HEIGHT: 20px; FONT-SIZE: 12px; WORD-BREAK: break-all" width=165>
<INPUT style="BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" id=Text1218528221 name=Text1218528221 readOnly 
alt=申请人 value=张三></TD><TD style="WORD-WRAP: break-word; HEIGHT: 20px; FONT-SIZE: 12px; WORD-BREAK: break-all" width=60><FONT color=#ff0000>请假天数&nbsp;
</FONT></TD><TD style="WORD-WRAP: break-word; HEIGHT: 20px; FONT-SIZE: 12px; WORD-BREAK: break-all" width=165 colSpan=3>
<INPUT style="BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: 0px; IME-MODE: disabled; VISIBILITY: visible; BORDER-TOP: 0px; 
BORDER-RIGHT: 0px" ondragenter="return false" id=Num1818504541 onkeypress="var k=event.keyCode; return (k>=48&amp;&amp;k<=57)||k==46" 
onpaste="return !/D/.test(clipboardData.getData('text'))" name=Num1818504541 alt=nums value=2></TD></TR><TR><TD style="WORD-WRAP: break-word; 
HEIGHT: 20px; FONT-SIZE: 12px; WORD-BREAK: break-all" bgColor=#fffff1 height=30 width=90><FONT color=#ff0000>请假原因&nbsp;</FONT></TD>
<TD style="WORD-WRAP: break-word; HEIGHT: 20px; FONT-SIZE: 12px; WORD-BREAK: break-all" colSpan=5><SPAN><TEXTAREA style="SCROLLBAR-ARROW-COLOR: #d8d8d8; 
BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: 0px; SCROLLBAR-FACE-COLOR: #aaaaaa; WIDTH: 604px; SCROLLBAR-DARKSHADOW-COLOR: #d8d8d8; HEIGHT: 57px; 
SCROLLBAR-HIGHLIGHT-COLOR: #d8d8d8; SCROLLBAR-SHADOW-COLOR: #d8d8d8; BORDER-TOP: 0px; SCROLLBAR-TRACK-COLOR: #d8d8d8; BORDER-RIGHT: 0px; 
SCROLLBAR-3DLIGHT-COLOR: #d8d8d8" id=TextArea244731855 cols=39 rows=1 name=TextArea244731855 alt="请假原因">123123</TEXTAREA></SPAN></TD>

要获取到alt=nums的input,value的值,也就是2
请求各位大能各展神通!
------解决方案--------------------

declare @x varchar(8000),@y int

select @x='</TD><TD style="WORD-WRAP: break-word; HEIGHT: 20px; FONT-SIZE: 12px; WORD-BREAK: break-all" width=165>
<INPUT style="BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" id=Text1218528221 name=Text1218528221 readOnly 
alt=申请人 value=张三></TD><TD style="WORD-WRAP: break-word; HEIGHT: 20px; FONT-SIZE: 12px; WORD-BREAK: break-all" width=60><FONT color=#ff0000>请假天数&nbsp;
</FONT></TD><TD style="WORD-WRAP: break-word; HEIGHT: 20px; FONT-SIZE: 12px; WORD-BREAK: break-all" width=165 colSpan=3>
<INPUT style="BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: 0px; IME-MODE: disabled; VISIBILITY: visible; BORDER-TOP: 0px; 
BORDER-RIGHT: 0px" ondragenter="return false" id=Num1818504541 onkeypress="var k=event.keyCode; return (k>=48&amp;&amp;k<=57)
------解决方案--------------------
k==46" 
onpaste="return !/D/.test(clipboardData.getData(''text''))" name=Num1818504541 alt=nums value=2></TD></TR><TR><TD style="WORD-WRAP: break-word; 
HEIGHT: 20px; FONT-SIZE: 12px; WORD-BREAK: break-all" bgColor=#fffff1 height=30 width=90><FONT color=#ff0000>请假原因&nbsp;</FONT></TD>
<TD style="WORD-WRAP: break-word; HEIGHT: 20px; FONT-SIZE: 12px; WORD-BREAK: break-all" colSpan=5><SPAN><TEXTAREA style="SCROLLBAR-ARROW-COLOR: #d8d8d8; 
BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: 0px; SCROLLBAR-FACE-COLOR: #aaaaaa; WIDTH: 604px; SCROLLBAR-DARKSHADOW-COLOR: #d8d8d8; HEIGHT: 57px; 
SCROLLBAR-HIGHLIGHT-COLOR: #d8d8d8; SCROLLBAR-SHADOW-COLOR: #d8d8d8; BORDER-TOP: 0px; SCROLLBAR-TRACK-COLOR: #d8d8d8; BORDER-RIGHT: 0px; 
SCROLLBAR-3DLIGHT-COLOR: #d8d8d8" id=TextArea244731855 cols=39 rows=1 name=TextArea244731855 alt="请假原因">123123</TEXTAREA></SPAN></TD>'

if charindex('alt=nums',@x,1)>0
 select @y=replace(substring(@x,
                   charindex('alt=nums',@x,1)+9,
                   charindex('>',@x,charindex('alt=nums',@x,1)+9)-(charindex('alt=nums',@x,1)+9)),'value=','')

select @y 'y'

/*
y
-----------
2

(1 row(s) affected)
*/
  相关解决方案