用正規表示式表示不包含2950的字串

2022-10-03 21:39:23 字數 717 閱讀 9097

使用excel中的vba測試如下(匹配式為:^((?!2950).)*$):

sub regs()

dim regex as object

set re = createob程式設計客棧ject("vbscript.regexp")

dim s, mat

s = "399295078"

regex.pattern = "^((?!2950).)*$"

regex.global = true

msgbox regehuydirouox.test(s)

set regex = nothing

end sub

如果匹配2950,則返會false,否則為true。

其中,(?!2950)表示不匹配2950,

而^表示匹配字串的開始位置,

.表示匹配除 "\n" 之外的任何單個字元,

$表示匹配字串的結束位置,

*表示匹配前面的子表示式零次或多次。

整個匹配式連起來就是:匹配空值或者匹配不含2950的字串。

其中(?!2950)後面必須加乙個「.」,那麼(?!2950).表示不含2950且至少有乙個字元。其實整個就是(?程式設計客棧!2950)和(.)*的組合,(.)*表示空串或者任意乙個串(不包www.cppcns.com含\n)。

本文標題: 用正規表示式表示不包含2950的字串

本文位址:

正規表示式匹配 包含且不包含

參考 例 包含admin且不包含abc。abc admin abc 查資料知道 pattern 負向預查,在任何不匹配 pattern 的字串開始處匹配查詢字串。這是乙個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如 windows 95 98 nt 2000 能匹配 windows 3.1...

正規表示式匹配 包含且不包含

參考 例 包含admin且不包含abc。abc admin abc 查資料知道 pattern 負向預查,在任何不匹配 pattern 的字串開始處匹配查詢字串。這是乙個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如 windows 95 98 nt 2000 能匹配 windows 3.1...

正規表示式常用表示

很多不太懂正則的朋友,在遇到需要用正則校驗資料時,往往是在網上去找很久,結果找來的還是不很符合要求。所以我最近把開發中常用的一些正規表示式整理了一下,包括校驗數字 字元 一些特殊的需求等等。給自己留個底,也給朋友們做個參考。一 校驗數字的表示式 數字 0 9 n位的數字 d 至少n位的數字 d m ...