正規表示式(二) 正規表示式的切割

2021-08-15 11:52:37 字數 2507 閱讀 8922

切割:還記得stirng的split的方法嗎.可以按照"空格,豎線"對字串進行切割.

正規表示式的切割:是指,我們按照正規表示式的規則對字串來進行一些複雜的切割

比方說現在我想按照多個空格來進行切割

string str = "zhangsan lisei wangwu";

string reg = "\\s+"; //\\s在這裡代表多個空格.+代表多個空格

string arr = str.split(reg);

for(string s :arr)

zhangsan

lisei

wangwu

現在我想用 . 來進行切割

string str = "zhangsan.lisei.wangwu";

string reg = "."; //\\s在這裡代表多個空格.+代表多個空格

string arr = str.split(reg);

for(string s :arr)

會發現這樣切割不出任何的字串

正確的方法是

string str = "zhangsan.lisei.wangwu";

string reg =

"\\."; //\\s在這裡代表多個空格.+代表多個空格

string arr = str.split(reg);

for(string s :arr)

反斜槓要注意的問題

切割c:\\abc\\a.txt   按照\\來進行切割

string str = "c:\\abc\\a.txt";

string reg = "\\\\";    注意使用"\\" 來切割字串.你可以認為使用1個"\" 則在規則中需要用"\\" .使用2個"\\"來進行切割,需要用"\\\\" 來進行切割

string arr = str.split(reg);

for(string s :arr)

組的概念

按照疊詞來進行切割

你比方說我現在想切割

-好,現在我要求你給我用疊詞切割我這個字串.str,你怎麼辦?

--我可以先用dd,得到的string型別的陣列再用qq切啊.

-我去,也可以啊.但是程式太多啦.

string str = "gengddcongqqshuo";

string reg = "dd";  

string arr = str.split(reg);   //我用疊詞 dd 來切割字串. 分組

那麼當組封裝完之後,會被自動地進行編號,這叫做第1組. 那麼接下來我第2個位置是不是和第1組的結果是一致的啊,我怎麼去使用第1組呢.使用  \1  表示去使用第1組.  通過\1看反向使用第1組,而正規表示式中反斜槓要進行 轉義,所以"\1"被寫成了"\\1"

分組和matcher不一樣,當匹配不中的時候,組不停止會繼續往下走

string str = "gengddcongqqshuo";

string reg = "(.)\\1";     

string arr = str.split(reg);

for(string s :arr)

//匹配的過程是這樣的. /*

* 匹配第1位g 則小數點".",被賦值為 g 

* 接下來匹配第2位,第2位是e,不中.和matcher不一樣,當匹配不中的時候,組不停止會繼續往下走

* 走過了n,g 都沒有中

* 此時,遇到了d,小數點"." 被賦值成了d

* 等到了下一位,還是乙個d,好了,這次\\1終於也中了.開始對單詞來進行切分 * 

* 迴圈如下的過程

* */

string str = "gengdddcongqqshuo";

string reg =

"(.)\\1+";     

string arr = str.split(reg);

for(string s :arr)

//匹配的過程是這樣的. /*

* 匹配第1位g 則小數點".",被賦值為 g 

* 接下來匹配第2位,第2位是e,不中.和matcher不一樣,當匹配不中的時候,組不停止會繼續往下走

* 走過了n,g 都沒有中

* 此時,遇到了d,小數點"." 被賦值成了d

* 等到了下一位,還是乙個d,好了,這次\\1終於也中了.開始對單詞來進行切分 * 

* 迴圈如下的過程

* */

((a)(b(c)))

正規表示式的弊端是,正則越長,閱讀性越差.別人寫的正則,你自己看了半天看不懂

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...