当前位置: 代码迷 >> ASP >> 正则表达式有关问题,请高手指教
  详细解决方案

正则表达式有关问题,请高手指教

热度:187   发布时间:2012-02-22 19:36:55.0
正则表达式问题,请高手指教
我想用正则表达式匹配以下的形式的字符串:
2006   或   2006|2007     或者   2006|2007|2008这样的形式
这样的不符合:
2006|   或   20062007   或2006   2007

我这样写的:(vbscript)
function   check(str)    
'str为要验证的字符串
'返回值为true   或   false  
dim   re  
set   re=new   regexp  
re.global=true  
re.ignorecase=true  
re.pattern= "^(20[0-1][0-9]$)(\|20[0-1][0-9]$)* "
check=re.test(str)  
set   re=nothing  
end   function  
结果不完整,请高手指教



------解决方案--------------------
<%@LANGUAGE= "VBSCRIPT " CODEPAGE= "65001 "%>
<% option explicit %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns= "http://www.w3.org/1999/xhtml ">
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=utf-8 " />
<title> shawl.qiu template </title>
</head>
<body>
<xmp>
我想用正则表达式匹配以下的形式的字符串:
2006 或 2006|2007 或者 2006|2007|2008这样的形式
这样的不符合:
2006| 或 20062007 或2006 2007

我这样写的:(vbscript)
function check(str)
'str为要验证的字符串
'返回值为true 或 false
dim re
set re=new regexp
re.global=true
re.ignorecase=true
re.pattern= "^(20[0-1][0-9]$)(\|20[0-1][0-9]$)* "
check=re.test(str)
set re=nothing
end function
结果不完整,请高手指教
</xmp>

<%

dim Ptr:Ptr= "^20[0-1][0-9]$|^(20[0-1][0-9]\|)+(20[0-1][0-9])$ "

Response.write( " <li/> "&fReTest(2006,Ptr))
Response.write( " <li/> "&fReTest( "2006|2007 ",Ptr))
Response.write( " <li/> "&fReTest( "2006|2007|2008 ",Ptr))
Response.write( " <li/> "&fReTest(20062007,Ptr))
Response.write( " <li/> "&fReTest( "2006| ",Ptr))
Response.write( " <li/> "&fReTest( "2006 2007 ",Ptr))

private function fReTest(sStr,sPt)
dim re
set re=new RegExp
re.ignoreCase=true
re.pattern=sPt
fReTest=re.test(sStr)
set re=nothing
end function 'fReTest shawl.qiu code '
%>
</body>
</html>