我想从字符串中获取一些值。例如:从Java中的字符串获取特定值
String string= "Name: armand," + "Age: 22," + "etc";
我怎样才能得到例如使用正则表达式的名称?
我用正则表达式很糟糕,所以我不知道如何解决这个问题。
我想从字符串中获取一些值。例如:从Java中的字符串获取特定值
String string= "Name: armand," + "Age: 22," + "etc";
我怎样才能得到例如使用正则表达式的名称?
我用正则表达式很糟糕,所以我不知道如何解决这个问题。
取决于你真正想要做什么,例如,如果你只想获得给定键的值,假设键和值由冒号和键/值分隔逗号分隔,你可以拆分以这种方式串首先由逗号,然后用冒号:
String[] couple = string.split(",");
for(int i =0; i < couple.length ; i++) {
String[] items =couple[i].split(":");
items[0]; //Key
items[1]; //Value
}
如果你想用正则表达式,你可以这样做的做到这一点:
String string = "Name:armand,Age:22,";
Pattern pattern = Pattern.compile("(\\w+?):(\\w+?),");
Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
String key = matcher.group(1);
String value = matcher.group(2);
System.out.println("Key : " + key + " value : " + value);
}
谢谢。使用split很容易。我知道知道,我必须学习更多关于正则表达式:)。 –
对不起,它的样子是这样的名字:armand,年龄:22,等等。但是我在正则表达式中很糟糕,这对我来说很难解决。
鉴于String s = "Name:armand,Age:22";
这里是一个暗示:
s.split(",")[0].split(":")
会给你armand
,
s.split(",")[1].split(":")
会给你22
不需要正则表达式的知识。
一些人,当遇到一个问题,认为“我知道,我将使用 正则表达式。”现在他们有两个问题。 - 杰米Zawinski
你可以改变这个来使用'substring'。 'split'方法将任何输入视为RegEx并试图编译它,无论你是否意图。 – adarshr
@JarrodRoberson感谢它的工作 –
那么贵字符串看起来像这样? '“名称:armandAge:22”'...... – birryree
您将它匹配到名称后最后的所有内容 – keyser
确切地说,域之间似乎没有任何分隔符。 –