fork download
  1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;
  3.  
  4. class Test{
  5.  
  6. public static void main(String[] args){
  7. String s ="randomtext 1150,25 USD randomtext\n" +
  8. "randomtext USD 1150,25 randomtext\n" +
  9. "randomtext USD1150,25 randomtext";
  10. Matcher matcher = Pattern.compile("(?<!\\d|\\d,)(?=(?:[\\d,]+\\s)*(PLN|EUR|USD|CHF|GBP)(?:\\s*[\\d,]+\\s)*)(?=((?:PLN|EUR|USD|CHF|GBP)*\\s*(\\d+)(,?\\s?|.)(\\d{1,2})\\s?(?:PLN|EUR|USD|CHF|GBP)*))[\\d\\s,PLNEURUSDCHFGB]+(?=\\b\\s)").matcher(s);
  11. while(matcher.find()) {
  12. for(int i = 0; i < matcher.groupCount(); i++){
  13. System.out.println(matcher.group(i));
  14. }
  15. System.out.println();
  16. }
  17. }
  18. }
Success #stdin #stdout 0.1s 320576KB
stdin
Standard input is empty
stdout
1150,25 USD
USD
1150,25 USD
1150
,

USD 1150,25
USD
USD 1150,25 
1150
,

USD1150,25
USD
USD1150,25 
1150
,