簡體   English   中英

在Java中使用正則表達式匹配字符串並將其存儲到數組中

[英]Matching strings and storing into an array with regex in java

我正在制作一個程序,該程序需要一個文件並查找標識符。 到目前為止,我刪除了所有引號中的單詞,任何以數字開頭的單詞,並且刪除了所有非單詞字符。

有沒有辦法找到與數組中的單詞不匹配的單詞,然后使用正則表達式將這些單詞存儲到另一個數組中? 我可以弄清楚,我試圖使用split方法,但是當我嘗試按空格分割時它無法正常工作...這就是我分割它的方法。

String[] SplitString = newLine.split("[\\s]");

采用

String[] SplitString = newLine.split("\\s");

如果您不想合並多個空格/制表符等,請使用

String[] SplitString = newLine.split("\\s+");

如果你這樣做。 例如,如果您的字符串是:

"a  b c"

第一個給您四個標記: "a""""b""c" ,第二個給您三個標記: "a" "a""b""c"

您可以輕松地在一行中完成以下操作:首先刪除已知單詞,然后拆分:

String[] unknownWords = newLine.replaceAll("\\b(apple|orange|banana)\\b", "").split("\\s+");

筆記:

  • 您的正則表達式[\\s]等效於\\s ,因此我簡化了它
  • 您可能應該在任意數量的空格上進行分割: \\s+
  • \\b表示“單詞邊界”-這表示刪除的正則表達式與applejack 匹配
  • 正則表達式(A|B|C|etc)是“ OR”邏輯的語法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM