java正則匹配微博@和話題#話題#

/**
     * 微博內容中的at正則表達式
     */
    private final Pattern AT_PATTERN = Pattern.compile("@[\\u4e00-\\u9fa5\\w\\-]+");

 

/**
     * 微博內容中的#話題#正則表達式
     */
    private final Pattern TAG_PATTERN = Pattern.compile("#([^\\#|.]+)#");

 

 

    Matcher m = TAG_PATTERN.matcher(content);
    while (m.find()) {
            String tagNameMatch = m.group();

    }

 

    Matcher m = AT_PATTERN.matcher(content);
    while (m.find()) {
            String atUserName = m.group();

    }

 

補充一個,應該是常識了:

根據 Java Language Specification 的要求,Java 源代碼的字符串中的反斜線被解釋爲 Unicode 轉義 或其他字符轉義 。因此必須在字符串字面值中使用兩個反斜線,表示正則表達式受到保護,不被 Java 字節碼編譯器解釋。例如,當解釋爲正則表達式時,字符串字面值 "\b" 與單個退格字符匹配,而 "\\b" 與單詞邊界匹配。字符串字面值 "\(hello\)" 是非法的,將導致編譯時錯誤;要與字符串 (hello) 匹配,必須使用字符串字面值 "\\(hello\\)"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章