C++正則表達式獲取字元串中的漢字
問題描述:
C++正則表達式如何取到該字元串中的漢字部分(黑龍江)?
我取到的黑龍江還有後面的空格,不知道該怎麼寫
網友觀點:
[\\u4e00-\\u9fa5]這就就代表中文
正則表達式經驗總結匯總2021-11-24
Perl語言的正則表達式功能非常強大,基本上是常用語言中最強大的,很多語言設計正則式支持的時候都參考Perl的正則表達式。
----------------------------------------------------------------------------------------
一、工作中正則表達式總結:
1.查找空行:^[ \\t]*$\\r\\n
2.查找最後一位是小寫字母的8位十六進位數:0x[0-9a-z]{7,7}[a-z]{1,1}
3.查找至少有一位是小寫字母的8位十六進位數:0x(?=[0-9]{0,7}[a-z]{1,8})[a-z0-9]{8,8}
4.截取當前行第一個括弧前面的全部字元:(?=^[^(|^(|^\\r|^\\n]*[(|(])^[^(|^(]*, ^[^(|^(|^\\r|^\\n]*(?=[(]),
5.截取字元串中標識符(DK)後面的全部字元:(?<=DK).*$
6.截取字元串中標識符(DK)前面的全部字元:^.*DK
6.1.截取字元串中標識符(DK)前面的全部字元,不包含標識符(DK):^.*(?=NT)
7.匹配當前字元串中全部字元是否為數字(正實數、負實數):^(\\-|\\+)?\\d+(\\.\\d+)?$
8.提取字元串中所有的ip地址:((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})(\\.((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})){3}
9.判斷字元串是否是IP地址:^((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})(\\.((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})){3}$
10.截取十六進位數的0x或者0X後面的8位數字:(?<=0[x|X])[A-Za-z0-9]{0,8}
11.查找至少有一位是小寫字母的8位十六進位數:0x(?=[0-9]{0,7}[a-z]{1,8})[a-z0-9]{8,8}
12.查找至少有一位是小寫字母的4位十六進位數:0x(?=[0-9]{0,3}[a-z]{1,4})[a-z0-9]{4,4}
13.查找至少有一位是小寫字母的2位十六進位數:0x(?=[0-9]{0,1}[a-z]{1,2})[a-z0-9]{2,2}
14.查找至少有一位是小寫字母的1-8位十六進位數:0x(?=[0-9]{0,7}[a-z]{1,8})[a-z0-9]{1,8}
把tdb_data.c中的數據,先把【至少有一位是小寫字母的8位十六進位數】轉為大寫。
再把【至少有一位是小寫字母的4位十六進位數】轉為大寫。
最後把【至少有一位是小寫字母的2位十六進位數】轉為大寫。
如果邏輯反過來,會發生什麼問題?
如果邏輯反過來,結果是正確的,但是效率會大大降低。
把【至少有一位是小寫字母的2位十六進位數】轉為大寫。轉換數據包含2/4/8位。
把【至少有一位是小寫字母的4位十六進位數】轉為大寫。轉為數據包含4/8位。
最後把【至少有一位是小寫字母的8位十六進位數】轉為大寫。轉為數據包含8位。
重複數據量為所有 8位和兩倍所有4位的十六進位數。效率大大降低。
15.刪除行尾空格: 替換 [ ^t]+$ 為空串
16.刪除行首空格: 替換 %[ ^t]+ 為 空串
17.十六進位數據中,至少有一位是小寫字母的規則:0x(?=[0-9A-F]{0,7}[a-f]{1,8})[a-f0-9A-F]{1,8}
18.判斷一個字元串是否是1-8位十六進位數字:^0[x|X][A-Fa-f0-9]{1,8}$
19.判斷一個字元串是否是數字:^(\\-|\\+)?\\d+(\\.\\d+)?$
20.不包含第一個「(」到行尾的全部字元:(?<=[(]).*$
21.包含第一個「(」到行尾的全部字元:(?=[(]).*$
22.截取當前行第一個括弧前面的全部字元:^[^(|^(|^\\r|^\\n]*(?=[(])
23.截取當前行包含第一個括弧前面的全部字元:^[^(|^(|^\\r|^\\n]*(?:[(])
24.獲取兩個括弧之間的字元串:(?<=[(])[^)|^)]*
----------------------------------------------------------------------------------------
二、平時使用正則表達式匯總
1.驗證用戶名和密碼:("^[a-zA-Z]\\w{5,15}$")正確格式:"[A-Z][a-z]_[0-9]"組成,並且第一個字必須為字母6~16位;
2.驗證電話號碼:("^(\\d{3,4}-)\\d{7,8}$")正確格式:xxx/xxxx-xxxxxxx/xxxxxxxx;
3.驗證手機號碼(包含虛擬號碼和新號碼段):"^1([38][0-9]|4[5-9]|5[0-3,5-9]|66|7[0-8]|9[89])[0-9]{8}$";
4.驗證身份證號(15位):"\\d{14}[[0-9],0-9xX]",(18位):"\\d{17}(\\d|X|x)";
5.驗證Email地址:("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");
6.只能輸入由數字和26個英文字母組成的字元串:("^[A-Za-z0-9]+$");
7.整數或者小數:^[0-9]+([.][0-9]+){0,1}$
8.只能輸入數字:"^[0-9]*$"。
9.只能輸入n位的數字:"^\\d{n}$"。
10.只能輸入至少n位的數字:"^\\d{n,}$"。
11.只能輸入m~n位的數字:"^\\d{m,n}$"。
12.只能輸入零和非零開頭的數字:"^(0|[1-9][0-9]*)$"。
13.只能輸入有兩位小數的正實數:"^[0-9]+(\\.[0-9]{2})?$"。
14.只能輸入有1~3位小數的正實數:"^[0-9]+(\\.[0-9]{1,3})?$"。
15.只能輸入非零的正整數:"^\\+?[1-9][0-9]*$"。
16.只能輸入非零的負整數:"^\\-[1-9][0-9]*$"。(15+16):"[\\+|\\-]?[1-9][0-9]*"
17.只能輸入長度為3的字元:"^.{3}$"。
18.只能輸入由26個英文字母組成的字元串:"^[A-Za-z]+$"。
19.只能輸入由26個大寫英文字母組成的字元串:"^[A-Z]+$"。
20.只能輸入由26個小寫英文字母組成的字元串:"^[a-z]+$"。
21.驗證是否含有^%&',;=?$\\"等字元:"[%&',;=?$\\\\^]+"。
22.只能輸入漢字:"^[\\u4e00-\\u9fa5]{0,}$"。
23.驗證URL:"^http://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?$"。
24.驗證一年的12個月:"^(0?[1-9]|1[0-2])$"正確格式為:"01"~"09"和"10"~"12"。
25.驗證一個月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正確格式為;"01"~"09"、"10"~"29"和「30」~「31」。
26.獲取日期正則表達式:"^\\d{1,4}[年|\\-|\\.](1[0-2]|0?[1-9])[月|\\-|\\.](31|30|((2|1)[0-9])|(0?[1-9]))日?$"
評註:可用來匹配大多數年月日信息,注意與24與25的差別,注意順序。
27.匹配雙位元組字元(包括漢字在內):[^\\x00-\\xff]
評註:可以用來計算字元串的長度(一個雙位元組字元長度計2,ASCII字元計1)
28.匹配空白行的正則表達式:^[\\t| ]*$\\r\\n
評註:可以用來刪除空白行
29.匹配HTML標記的正則表達式:<(\\S*?)[^>]*>.*?</>|<.*? />
評註:網上流傳的版本太糟糕,上面這個也僅僅能匹配部分,對於複雜的嵌套標記依舊無能為力
30.匹配首尾空白字元的正則表達式:^\\s*|\\s*$
評註:可以用來刪除行首行尾的空白字元(包括空格、製表符、換頁符等等),非常有用的表達式
31.匹配網址URL的正則表達式:[a-zA-z]+://[^\\s]*
評註:網上流傳的版本功能很有限,上面這個基本可以滿足需求
32.匹配帳號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
評註:表單驗證時很實用
33.匹配騰訊QQ號:[1-9][0-9]{4,}
評註:騰訊QQ號從10 000 開始
34.匹配中國郵政編碼:[1-9]\\d{5}(?!\\d)
評註:中國郵政編碼為6位數字
35.匹配MAC地址:([A-Fa-f0-9]{2}\\:){5}[A-Fa-f0-9]{2} 或者 ([A-Fa-f0-9]{2}\\-){5}[A-Fa-f0-9]{2}
36.提取一段內容中的所有IP地址
((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})(\\.((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})){3}
37.判斷字元串是否是IP地址
^((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})(\\.((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})){3}$
----------------------------------------------------------------------------------------
三、等價符號
等價:
等價是等同於的意思,表示同樣的功能,用不同符號來書寫。
?,*,+,\\d,\\w 都是等價字元
?等價於匹配長度{0,1}
*等價於匹配長度{0,}
+等價於匹配長度{1,}
\\d等價於[0-9]
\\D等價於[^0-9]
\\w等價於[A-Za-z_0-9]
\\W等價於[^A-Za-z_0-9]。
常用運算符與表達式:
^ 行首字元
() 域段
[] 包含,默認是一個字元長度
[^] 不包含,默認是一個字元長度
{n,m} 匹配長度
. 任何單個字元(\\. 字元點)
| 或
\\ 轉義
$ 行尾字元
[A-Z] 26個大寫字母
[a-z] 26個小寫字母
[0-9] 0至9數字
[A-Za-z0-9] 26個大寫字母、26個小寫字母和0至9數字
, 分割
語法與釋義:
基礎語法 "^([]{})([]{})([]{})$"
正則字元串 = "開始([包含內容]{長度})([包含內容]{長度})([包含內容]{長度})結束"
(?:)(?=)(?!)(?<=)(?<!)(?i)(*?)(+?)這種特殊組合。
「.」 =匹配任意單個字元
「*」 =匹配0次或更多
----------------------------------------------------------------------------------------
四、校驗數字的表達式
1. 數字:^[0-9]*$
2. n位的數字:^\\d{n}$
3. 至少n位的數字:^\\d{n,}$
4. m-n位的數字:^\\d{m,n}$
5. 零和非零開頭的數字:^(0|[1-9][0-9]*)$
6. 非零開頭的最多帶兩位小數的數字:^([1-9][0-9]*)+(\\.[0-9]{1,2})?$
7. 帶1-2位小數的正數或負數:^(\\-)?\\d+(\\.\\d{1,2})$
8. 正數、負數、和小數:^(\\-|\\+)?\\d+(\\.\\d+)?$
9. 有兩位小數的正實數:^[0-9]+(\\.[0-9]{2})?$
10. 有1~3位小數的正實數:^[0-9]+(\\.[0-9]{1,3})?$
11. 非零的正整數:^[1-9]\\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\\+?[1-9][0-9]*$
12. 非零的負整數:^\\-[1-9][]0-9"*$ 或 ^-[1-9]\\d*$
13. 非負整數:^\\d+$ 或 ^[1-9]\\d*|0$
14. 非正整數:^-[1-9]\\d*|0$ 或 ^((-\\d+)|(0+))$
15. 非負浮點數:^\\d+(\\.\\d+)?$ 或 ^[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0$
16. 非正浮點數:^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$ 或 ^(-([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*))|0?\\.0+|0$
17. 正浮點數:^[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*$ 或 ^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$
18. 負浮點數:^-([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*)$ 或 ^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
19. 浮點數:^(-?\\d+)(\\.\\d+)?$ 或 ^-?([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0)$
----------------------------------------------------------------------------------------
校驗字元的表達式
1. 漢字:^[\\x{4e00}-\\x{9fa5}]+$
2. 英文和數字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
3. 長度為3-20的所有字元:^.{3,20}$
4. 由26個英文字母組成的字元串:^[A-Za-z]+$
5. 由26個大寫英文字母組成的字元串:^[A-Z]+$
6. 由26個小寫英文字母組成的字元串:^[a-z]+$
7. 由數字和26個英文字母組成的字元串:^[A-Za-z0-9]+$
8. 由數字、26個英文字母或者下劃線組成的字元串:^\\w+$ 或 ^\\w{3,20}$
9. 中文、英文、數字包括下劃線:^[\\u4E00-\\u9FA5A-Za-z0-9_]+$
10. 中文、英文、數字但不包括下劃線等符號:^[\\u4E00-\\u9FA5A-Za-z0-9]+$ 或 ^[\\u4E00-\\u9FA5A-Za-z0-9]{2,20}$
11. 可以輸入含有^%&',;=?$\\"等字元:[^%&',;=?$\\x22]+
12. 禁止輸入含有~的字元:[^~\\x22]+
13. 美國標準信息交換碼:[\\x00-\\x7F]
14. 任意西文字元碼:[\\x00-\\xFF]
15. 匹配任意雙位元組字元:[^\\x00-\\x7f] 或者 [\\x{0100}-\\x{ffff}]
注意:符號"^"在字符集[]中用於(否)取反,如果不是在字符集[]中,那麼表示行首字元。
16. Java、JavaScript支持的16進位字元編碼轉義符有:[\\u4e00-\\u9fa5], [\\u0000-\\uFFFF]
----------------------------------------------------------------------------------------
三、特殊需求表達式
1. Email地址:^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$
2. 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\\.?
3. InternetURL:[a-zA-z]+://[^\\s]* 或 ^http://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?$
4. 手機號碼:^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}$
5. 電話號碼("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(\\(\\d{3,4}-)|\\d{3.4}-)?\\d{7,8}$
6. 國內電話號碼(0511-4405222、021-87888822):\\d{3}-\\d{8}|\\d{4}-\\d{7}
7. 電話號碼正則表達式(支持手機號碼,3-4位區號,7-8位直播號碼,1-4位分機號): ((\\d{11})|^((\\d{7,8})|(\\d{4}|\\d{3})-(\\d{7,8})|(\\d{4}|\\d{3})-(\\d{7,8})-(\\d{4}|\\d{3}|\\d{2}|\\d{1})|(\\d{7,8})-(\\d{4}|\\d{3}|\\d{2}|\\d{1}))$)
8. 身份證號(15位、18位數字),最後一位是校驗位,可能為數字或字元X:(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)
9. 帳號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
10. 密碼(以字母開頭,長度在6~18之間,只能包含字母、數字和下劃線):^[a-zA-Z]\\w{5,17}$
11. 強密碼(必須包含大小寫字母和數字的組合,不能使用特殊字元,長度在 8-10 之間):^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$
12. 強密碼(必須包含大小寫字母和數字的組合,可以使用特殊字元,長度在8-10之間):^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
13. 日期格式:^\\d{4}-\\d{1,2}-\\d{1,2}
14. 一年的12個月(01~09和1~12):^(0?[1-9]|1[0-2])$
15. 一個月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
16. 錢的輸入格式:
a) 有四種錢的表示形式我們可以接受:"10000.00" 和 "10,000.00", 和沒有 "分" 的 "10000" 和 "10,000":^[1-9][0-9]*$
b) 這表示任意一個不以0開頭的數字,但是,這也意味著一個字元"0"不通過,所以我們採用下面的形式:^(0|[1-9][0-9]*)$
c) 一個0或者一個不以0開頭的數字.我們還可以允許開頭有一個負號:^(0|-?[1-9][0-9]*)$
d) 這表示一個0或者一個可能為負的開頭不為0的數字.讓用戶以0開頭好了.把負號的也去掉,因為錢總不能是負的吧。下面我們要加的是說明可能的小數部分:^[0-9]+(.[0-9]+)?$
e) 必須說明的是,小數點後面至少應該有1位數,所以"10."是不通過的,但是 "10" 和 "10.2" 是通過的:^[0-9]+(.[0-9]{2})?$
f) 這樣我們規定小數點後面必須有兩位,如果你認為太苛刻了,可以這樣:^[0-9]+(.[0-9]{1,2})?$
g) 這樣就允許用戶只寫一位小數.下面我們該考慮數字中的逗號了,我們可以這樣:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$
h) 1到3個數字,後面跟著任意個 逗號+3個數字,逗號成為可選,而不是必須:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$
i) 備註:這就是最終結果了,別忘了"+"可以用"*"替代如果你覺得空字元串也可以接受的話(奇怪,為什麼?)最後,別忘了在用函數時去掉去掉那個反斜杠,一般的錯誤都在這裡
17. xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\\\.[x|X][m|M][l|L]$
18. 中文字元的正則表達式:[\\u4e00-\\u9fa5]
19. 雙位元組字元:[^\\x00-\\xff] (包括漢字在內,可以用來計算字元串的長度(一個雙位元組字元長度計2,ASCII字元計1))
20. 空白行的正則表達式:\\n\\s*\\r (可以用來刪除空白行)
21. HTML標記的正則表達式:<(\\S*?)[^>]*>.*?|<.*? /> ( 首尾空白字元的正則表達式:^\\s*|\\s*$或(^\\s*)|(\\s*$) (可以用來刪除行首行尾的空白字元(包括空格、製表符、換頁符等等),非常有用的表達式)
22. 騰訊QQ號:[1-9][0-9]{4,} (騰訊QQ號從10000開始)
23. 中國郵政編碼:[1-9]\\d{5}(?!\\d) (中國郵政編碼為6位數字)
24. IPv4地址:((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})(\\.((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})){3}
25. 反向肯定預查,包含【行首字元】要不能使用或拼接,需要單獨拼寫:((?<=^)|(?<=95|98))Windows
26. 正向肯定預查,包含【行尾字元】可以使用或拼接,可以混合拼寫:Windows(?=95|98|$)
Windows85
Windows95
Windows98
Windows2000
Windows3.1
85Windows
95Windows
98Windows
2000Windows
3.1Windows
----------------------------------------------------------------------------------------
四、內嵌表達式
對應的內嵌標誌表達式是 (?i),它有四種形式:
1,(?i)
2,(?-i)
3,(?i:X)
4,(?-i:X)
不帶有「-」的是開標誌,帶有「-」的是關標誌。
a)所有的字元都進行不區分大小寫
String regex = "(?i)book";
b)只有首字元『b』不區分大小寫
String regex = "(?i)b(?-i)ook";
String regex = "(?i:b)ook";
book
Book
bOoK
BOoK
bOOK
----------------------------------------------------------------------------------------
四、替換表達式($1, $1, $2)
1.將*12\\n.3*自動轉義。
查找:[\\*\\\\\\.]
替換:\\\\\\\\$0
注意:"/" 英文是forward slash, 「\\" 是backward slash。中文分別是正斜杠、反斜杠。
形象些比喻的話,「/"是一個人站立著向前傾倒->, 而"\\"是一個人站立著向後傾倒。"
如果還是不理解,那麼百度搜索一下:邁克爾傑克遜向前傾倒圖片,演唱會經典姿勢。
2.自動轉義符號
使用正則匹配查找的時候:
\\Q...\\E 適合用於:表達式中需要比較長的普通文本,而其中包含了特殊符號。
\\Q(a+b)*3\\E :如果使用 \\Q...\\E 進行轉義,可匹配文本 "(a+b)*3"。
\\(a\\+b\\)\\*3 :如果不使用 \\Q...\\E 進行轉義,則對每個特殊符號進行轉義。
3.將單詞全部轉為大寫:
查找:(\\w+)
替換:\\L$1\\E
4.將單詞全部轉為小寫:
查找:\\w+
替換:\\L$0\\E
注意:沒有小括弧的時候,$0代表正則匹配到的字元串。
5.$1,$2表達的是小括弧裡面的內容
$1是第一個小括弧里的內容,$2是第二個小括弧裡面的內容,依此類推:
比如(\\\\d{4})(\\\\d{2})(\\\\d{2}) 匹配"20190919"
$1是第一個括弧里匹配的2019
$2是第二個括弧里匹配的09
$3是第三個括弧里匹配的19
----------------------------------------------------------------------------------------
五、位置匹配(正則表達式6個錨字元:^、$、\\b、\\B、(?=p)、(?!p))
1.將單詞首字母轉為大寫:
單詞首字母匹配:\\b[a-zA-Z]
轉為大寫:\\U$0\\E
注意:沒有小括弧的時候,$0代表正則匹配到的字元串。
2.將單詞首字母轉為小寫:
單詞首字母匹配:\\b[a-zA-Z]
轉為小寫:\\L$0\\E
注意:沒有小括弧的時候,$0代表正則匹配到的字元串。
3.匹配95或98之前的位置,除去行首符、回車符、換行符。
(?=p),其中 p 是一個子模式,即 p 前面的位置
除去行首符、回車符、換行符的表達式為:[^^|^\\r|^\\n]+(?=95|98)
Windows85
Windows95
Windows98
Windows2000
Windows3.1
85Windows
95Windows
98Windows
2000Windows
3.1Windows
4.(?!p) 就是(?=p) 的否定,即 !p 前面的位置
例如「Windows(?!95|98|NT|2000)」能匹配「Windows3.1」中的「Windows」,
但不能匹配「Windows2000」中的「Windows」。
Windows(?!95|98|NT|2000)
Windows85
Windows95
Windows98
WindowsNT
Windows2000
Windows3.1
5.匹配95或98之後的位置,除去行首符、回車符、換行符。
(?<=p),其中 p 是一個子模式,即 p 後面的位置
行首符、95、98之後的位置的表達式為:((?<=^)|(?<=95|98))Windows
【行首字元】不能直接跟95和98並列使用"|"拼接,需要單獨加一個括弧拼接:((?<=^)|(?<=95|98))Windows
Windows85
Windows95
Windows98
Windows2000
Windows3.1
85Windows
95Windows
98Windows
2000Windows
3.1Windows
6.匹配非【95或98】之後的位置,包含行尾符。
(?!p) 就是(?=p) 的否定,即 !p 後面的位置。
例如「(?<!95|98)Windows」能匹配「3.1Windows」中的「Windows」,
但不能匹配「98Windows」中的「Windows」。
非【95或98】之後的位置的表達式為:(?<!95|98)Windows
85Windows
95Windows
98Windows
2000Windows
3.1Windows
1. 帶 [親測] 說明源碼已經被站長親測過!
2. 下載後的源碼請在24小時內刪除,僅供學慣用途!
3. 分享目的僅供大家學習和交流,請不要用於商業用途!
4. 本站資源售價只是贊助,收取費用僅維持本站的日常運營所需!
5. 本站所有資源來源於站長上傳和網路,如有侵權請郵件聯繫站長!
6. 沒帶 [親測] 代表站長時間緊促,站長會保持每天更新 [親測] 源碼 !
7. 盜版ripro用戶購買ripro美化無擔保,若設置不成功/不生效我們不支持退款!
8. 本站提供的源碼、模板、插件等等其他資源,都不包含技術服務請大家諒解!
9. 如果你也有好源碼或者教程,可以到審核區發布,分享有金幣獎勵和額外收入!
10.如果您購買了某個產品,而我們還沒來得及更新,請聯繫站長或留言催更,謝謝理解 !
GG資源網 » C++正則表達式獲取字元串中的漢字