簡體   English   中英

如何用正則表達式剝離字符串

[英]How to strip a string with a regular expression

我想在字符串中找到所有負浮點數並將它們存儲在數組中。 我認為我的正則表達式是正確的,但是我的方法有問題。

Pattern pattern = Pattern.compile("[-]?[0-9]*[.][0-9]+$");      
String[] results = pattern.split("|AAA--A A05_#A| |-999.999| |-55.7|");

您的正則表達式將匹配項錨定到字符串的末尾,這不是您想要的。

同樣, Pattern.split不會執行您想要的操作。 以下是一些示例代碼,可助您一臂之力:

Pattern pattern = Pattern.compile("[-]?[0-9]*[.][0-9]+");
String text = "|AAA--A A05_#A| |-999.999| |-55.7|";
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
    System.out.println(matcher.group());
}

打印:

-999.999
-55.7

顯然,您可以在while循環中添加到列表或類似內容。 我不知道有什么方法可以返回所有匹配項的集合,但是您可以根據上述代碼輕松地編寫一個實用程序方法來自己執行此操作。

編輯:正如在評論中指出,如果你只是想找到負值時, -不應該是可選的(它並不需要在一組,或者-只是-?本來罰款)。

暫無
暫無

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

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