如何拆分复杂的字符串?

时间:2013-12-16 07:59:12

标签: java regex

String ="(Buy) 655500 - (Sell) 656500";

我想忽略(Buy)-(Sell)来拆分此字符串。

我想要的最终结果就像这个655500 656500

上面是示例..实际上我的字符串包含UTF-8字符..但我把它留在这里

6 个答案:

答案 0 :(得分:4)

正则表达式

    String src = "(Buy) 655500 - (Sell) 656500";
    String reg = "[0-9]+";
    Pattern pattern = Pattern.compile(reg);
    Matcher matcher = pattern.matcher(src);
    while(matcher.find()) {
       System.out.println(matcher.group());
    }

答案 1 :(得分:1)

String string = "(Buy) 655500 - (Sell) 656500";

String needed = string.replaceAll("[\"(Buy)(Sell)-]", "");

这应该可行...需要的是能够为您提供所需结果的字符串。

答案 2 :(得分:0)

您最好的方法是为序列定义正则表达式模式匹配,并从中提取值。

Using Regular Expressions to Extract a Value in Java

答案 3 :(得分:0)

如果您的语法总是如此,您可以像这样分开:

String string = "(Buy) 655500 - (Sell) 656500";
String replaced= string.replaceAll("[(Buy)(Sell)]", "");
String[] values = replaced.split("-");

这里:      值[0]将为655500 和值[1]将是656500

如果您的要求不同,请发表评论。

答案 4 :(得分:0)

另一种方式:

String baseStr = "(Buy) 655500 - (Sell) 656500";  
String buy = baseStr.split("-")[0].replaceAll("\\D+", "");  
String sell = baseStr.split("-")[1].replaceAll("\\D+", "");  

System.out.println("Base String: " + baseStr);  
System.out.println("Buy String : " + buy);  
System.out.println("Sell String: " + sell);  

这是输出:

Base String: (Buy) 655500 - (Sell) 656500  
Buy String : 655500  
Sell String: 656500  

答案 5 :(得分:0)

试试这个:

    String text = "(Buy) 655500 - (Sell) 656500";
    List<String> parts = new LinkedList<String>(Arrays.asList(text.split("\\D")));
    parts.removeAll(Arrays.asList(""));
    System.out.println(parts);

您将获得字符串中的数字列表。