Java之Regex在字串中尋找中文

來源:互聯網
上載者:User

標籤:中文   mpi   details   學習   pil   性價比   ext   code   replace   

轉自:http://blog.csdn.net/csdn_yaobo/article/details/48377757 
本來是要收藏的,但是不知怎麼了,點了收藏沒有反應,只好先轉載一下,等能收藏的時候,會刪除此文章

學習了Regex後,感覺Regex很強大,但是為了更好地理解Regex,找了一個很實際的問題來分享一下自己學習的心得。本題目是招聘時的一個題目,題目大致的意思是這樣的:使用者每次在網上消費東西,之後會給商家評論,但是這個評論中會有許多人評論一下小廣告,為了能找出這些評論,我們假設這樣一個情境:

       經常的一些小廣告會有下面一下詞語:”網店地址“,“銷售”,“代購”;       假如一個使用者的評論是這樣:這家酒店性價比高,提供海外代%……&購*&&6服……&**務”,網店地址:¥……**&*6“;    要求:匹配出關鍵字,並列印出關鍵字和該條評論。    就如上面這個題,我想已經表達的夠清楚了,我們該怎麼下手呢?我們經常的想法是一個一個掃描匹配,但是這樣是不是太麻煩,而且有的評論中會有很多特殊字元,那我們怎麼辦呢?我的思路是這樣,我們匹配的都是關鍵字,也就是漢字,那麼可以將上述評論中所有的特殊符號(包括字母,空格,數字等)全部刪除掉,只剩下漢字,然後我們去匹配關鍵字,這樣就簡單了,下來用一段程式說一下怎樣去除特殊符號:    String string1 = "我愛編[email protected]#程  www#

她不5454 dadad &*$()###(愛編dadada程w!”;

    String regEx="[`[email protected]#$%^&*()+=|{}:;\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?a-zA-Z0-9 ]";     Pattern c = Pattern.compile(regEx);     Matcher mc=c.matcher(string1);     String result =  mc.replaceAll("").trim();       System.out.println(result);

解釋一下上面的程式:我給了這樣一句話“我愛編[email protected]#程 www#

她不5454 dadad &*$()###(愛編dadada程w!”,然後從這句話中找出匹配“編程”關鍵字;然後並輸出,上面regEx是Regex,目的是過濾掉所有特殊字元,可能我寫的這個有漏掉的字元,可以根據自己的需要修改,這樣我們就將這句話經過過濾變成了下面這樣:

上面已經去除掉特殊符號了,下來是最關鍵的是怎樣匹配關鍵字呢?又用一個簡單的程式樣本說一下:

 Pattern p = Pattern.compile("[編][程]");     Matcher m = p.matcher(result);     while(m.find()){         System.out.println(m.group());        }

 

上面那個“(“[編][程]”)”就是匹配關鍵字,不能寫成“[編程]”,如果寫成“[編程]”就會出現每個字和上面那句話匹配,而不是一個詞語匹配,和我們想要的結果截然不同,這個可以參考Regex的概念(寫到一個裡相當雨或的概念,寫到兩個裡就是兩個條件是且的意思如:[0-9,a-z]與[0-9][a-z])。如果有匹配的,輸出匹配的關鍵字。下面是輸出的結果,這句話中出現了兩次編程,我們都匹配出來了,而且都輸出來了。

Java之Regex在字串中尋找中文

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.