正则表达式不包含2950字符串的实例详解

发布时间:2020-08-24编辑:脚本学堂
本文介绍了正则表达式表示不包含2950的字符串的方法,正则表达式排除指定字符串的方法,需要的朋友参考下。

命令 hostname [string],当string是不包含2950时,是true,包含2950时是false。正则表达式不包含某某内容的例子。

使用Excel中的VBA测试如下(匹配式为:^((?!2950).)*$):
 

Sub Regs()
Dim RegEx As Object
Set RegEx = CreateObject("VBScript.regexp")
Dim s, mat
s = "399295078"
RegEx.Pattern = "^((?!2950).)*$"
RegEx.Global = True
MsgBox RegEx.test(s)
Set RegEx = Nothing
End Sub
 

如果匹配2950,则返会false,否则为true。
其中,(?!2950)表示不匹配2950,
而^表示匹配字符串的开始位置,
.表示匹配除 "n" 之外的任何单个字符,
$表示匹配字符串的结束位置,
*表示匹配前面的子表达式零次或多次。
整个匹配式连起来就是:匹配空值或者匹配不含2950的字符串。
其中(?!2950)后面必须加一个“.”,那么(?!2950).表示不含2950且至少有一个字符。其实整个就是(?!2950)和(.)*的组合,(.)*表示空串或者任意一个串(不包含n)。

附,正则表达式验证

正则表达式在asp中的应用实例。

1,正则表达式函数
假设为myfunc.asp
 

复制代码 代码示例:
<%
'正则表表达式验证函数 patrn-正则表达式 strng-需要验证的字符串
Function RegExpTest(patrn, strng)
Dim regEx, retVal ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = False ' 设置是否区分大小写。
retVal = regEx.Test(strng) ' 执行搜索测试。
RegExpTest = retVal '返回不尔值,不符合就返回false,符合为true
End Function
%>

2,提交页面代码
假设为mypage.asp
 

复制代码 代码示例:
<form method="post" action="check.asp">
请输入E-mail地址:<input type=text name=email>
<br>
请输入电话号码:<input type=text name=tel>
<input type=submit value="确定">
</form>

3,验证页面
假设为check.asp
 

复制代码 代码示例:
<!--#include file="myfunc.asp"-->
<%
tel=request.form("tel")
email=request.form("email")
dim founderr : founderr=false '建立变量,正确或者失败标记
'大家注意哦,顺便我在这里贡献一个正则表达式,同时验证电话号码和手机号码的!
if RegExpTest("(^[0-9]{3,4}-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^([0-9]{3,4})[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)", tel)=false then
founderr=true
regshow=regshow&"<li>您输入的电话号码格式不正确"
end if
if RegExpTest("^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$", email)=false then
founderr=true
regshow=regshow&"<li>您输入的电子邮箱格式不正确"
end if
if founderr=false then regshow="<li>您输入的格式都是正确的哦"
%>
<br><br>
<%=regshow%>