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