亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java Regex 拆分單詞、標點符號、空格、換行符但保持收縮?

Java Regex 拆分單詞、標點符號、空格、換行符但保持收縮?

智慧大石 2021-09-12 10:35:18
我想使用正則表達式將一個長字符串按單詞拆分為其內容的數組?,F在我正在使用 (?<=\b) 但問題是它拆分了收縮的單詞(例如你正在修復,諸如此類)。我需要一個正則表達式,它可以使標點符號成為自己的元素,除了上述情況外,還有制表符、空格、新行也是它們自己的元素。有任何想法嗎?
查看完整描述

2 回答

?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

查看 StringTokenizer。您可以指定多個分隔符(第二個參數),并且可以指定是否返回此類分隔符(將第三個參數設置為 true 以返回空格、換行符、制表符等)。如果您不希望空格、制表符、換行符作為標記返回,請設置為 false(或者更好,不要有第三個參數)。


String testString = "this isn't\nright\t 'cause it ain't true";

StringTokenizer s = new StringTokenizer(testString," \n\t\r",true);

while (s.hasMoreTokens()) {

    System.out.println("'" + s.nextToken() + "'");

}

輸出:


'this'

' '

'isn't'

'

'

'right'

'   '

' '

''cause'

' '

'it'

' '

'ain't'

' '

'true'


查看完整回答
反對 回復 2021-09-12
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

我認為您需要做的是查看\b("word boundary") 的定義,然后查看\w ("word") 并將 a 重新定義'為單詞的一部分。像這樣的東西,盡管這取決于您是否也需要分隔符,或者您是否可以讓正則表達式吞下它們。


   public static void main( String[] args ) {

      String test = "Don't fear the reaper.";

      String regex = "[^a-zA-Z0-9']";

      System.out.println( Arrays.toString( test.split( regex ) ) );

   }

輸出:


run:

[Don't, fear, the, reaper]

BUILD SUCCESSFUL (total time: 0 seconds)


查看完整回答
反對 回復 2021-09-12
  • 2 回答
  • 0 關注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號