用正则表达式表示不包含2950的字符串
网络编程
使用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)。
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)。
用正则删除不包含某个字符串的行的代码
先说一下这个可疑的ip,58.63.144.170,据说是一个弱智的蜘蛛,上帝保佑它下地狱。看过apache日志的朋友应该知道,apache的访问日志的每一行是以访问者的ip
用正则表达式来判断素数的代码
importredefis_prime(num):returnnotre.match(r"^1?$|^(11+?)1+$",'1'*num)这个正则表达式实际上表示所有合数长度的"1"串(还包括特例"1")。(11+?)表示所有大于等于2的整
使用正则表达式替换表情符号核心代码
Stringa="哇哈哈哈[em:5]aa8888[em:7]";Stringr="\[em:(\d+)\]";a=a.replaceAll(r,"$1.gif");System.out.println(a);打印出的结果是:5.gifaa88887.gif大家可以尽兴发挥。
标签:字符串,不含,代码,不包含,正则表达式