从字符串中提取变量和值

时间:2015-06-18 16:19:26

标签: java regex

我有一个看起来像这样的字符串: String info =“var1 = value1; var2 = value2; var3 = value3;” ;

您在Java中提取每个var名称和值的方法是什么?

任何想法都会受到赞赏,

谢谢!

4 个答案:

答案 0 :(得分:2)

您可以尝试使用以下正则表达式,

(\w+)=(\w+);

Working Demo

它使用Group capture

的概念

答案 1 :(得分:1)

另一位用户问了一个类似的问题。用户想要知道如何解析字符串" A = B& C = D& E = F"进入地图。你的字符串看起来几乎一样。它也有键和值。

使用地图是获得清晰结构的最简单方法。看看下面的问题和提供的答案:

How to parse the string into map

提取部分答案:

  

我会使用拆分

String text = "A=B&C=D&E=F";

Map<String, String> map = new LinkedHashMap<String, String>();

for(String keyValue : text.split(" *& *")) {
    String[] pairs = keyValue.split(" *= *", 2);
    map.put(pairs[0], pairs.length == 1 ? "" : pairs[1]);
}
     

EDIT允许填充空格和值为=或无值的值。 e.g。

     

A = minus- & C=equals= & E==F

它显示了如何在键值对中拆分类似于你的字符串并将其保存在地图中。

我可以选择拆分字符串并存储信息。

答案 2 :(得分:1)

我可能会选择String.split()(未经测试):

for (String s : info.split(":") {
     String[] pair = s.split("=");
     HashMap.put(pair[0],pair[1]);     // Or whatever you do with the data
}

答案 3 :(得分:0)

感谢您帮我解决这个问题。我读过关于正则表达式的内容,现在我对它更熟悉了。我承认,在我提出问题之前,我应该先阅读教程(获得的经验教训)。我有点压力所以更容易就是问别人:) 我使用了Hudi建议的方法:


    public class ArduinoResponsePhraser {

        Map varMap = new HashMap();

        public Map PhraseString(String response)
        {
                for (String s : response.split(";")) {
                        String[] pair = s.split("=");
                        varMap.put(pair[0], pair[1]);
                }
                return varMap;
        }