簡體   English   中英

正則表達式:查找字符串中的模式

[英]Regular Expressions: Find pattern in string

有人可以解釋如何在Java中使用正則表達式。 我只有幾個字符串3 :- N, 'V—g'ufi “ 'L Total: 13-70 "0- 1' i and r _._A_ ,,1 Total: $13.70 i- T« 。我需要提取Total :加上總和:預期輸出的Total: 13-70, Total: $13.70 。我嘗試使用以下代碼...但是據我了解,它不會捕獲符號,例如$.-

Pattern p = Pattern.compile("Total: \\d+");
            Matcher m = p.matcher(result);
            while (m.find()) {
                System.out.println(m.group());
            }

您可以使用

Total:\s*\$?\d+(?:[-.]\d+)?

參見regex演示

細節

  • Total: -文字子字符串
  • \\s* -0+空格
  • \\$? -可選的$ char
  • \\d+ -1個以上數字
  • (?:[-.]\\d+)? -匹配以下情況的1或0的可選非捕獲組:
    • [-.] -或- .
    • \\d+ -1個或多個數字。

在此處輸入圖片說明

在Java中:

Pattern p = Pattern.compile("Total:\\s*\\$?\\d+(?:[-.]\\d+)?");

如果您需要提取值,請在需要提取的模式周圍使用捕獲組(例如\\$?\\d+(?:[-.]\\d+)? ),然后訪問組值,例如

Pattern p = Pattern.compile("Total:\\s*(\\$?\\d+(?:[-.]\\d+)?)");
Matcher m = p.matcher(result);
while (m.find()) {
     System.out.println(m.group(1));
}

暫無
暫無

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

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