我有一個string
像波紋管:常規價格表達 - Android電子
dfdfm;lg 2500$ jshfsnefsfz5405€mnvkjdf64rfmkd554668¢ odsfrknegj 885486¥ dsflkef 588525dollar
我得到波紋管的值與此[\\d,]+\\s*\\$|[\\d,]+\\s*€|[\\d,]+\\s*¥|[\\d,]+\\s*¢|[\\d,]+\\s*dollar
:
2500 $ 5405€ 554668¢ 885486¥ 588525dollar
問題:但我不需要這些$ € ¢ ¥ dollar
。我怎樣才能刪除這些頂級正則表達式?
這裏是我的方法:
private String getPrice(String caption) {
String pricePattern = "[\\d,]+\\s*\\$|[\\d,]+\\s*€|[\\d,]+\\s*¥|[\\d,]+\\s*¢|[\\d,]+\\s*dollar|[\\d,]+\\s*Euro";
List<String> lstPrice = new ArrayList<>();
Pattern rPrice = Pattern.compile(pricePattern);
Matcher mPrice = rPrice.matcher(caption);
while (mPrice.find()) {
lstPrice.add(mPrice.group());
}
if (lstPrice.size() > 0) {
return lstPrice.get(0);
}
return "";
}
使用組'([\\ d,] +) '和你的正則表達式也可以優化 –
也許我有這樣一個字符串:dsfsdfd58ssdf8745 $。然後讓我58和8745。我只需要價格。 –
我只需要價格。 –