Java拆分正则表达式

时间:2010-04-17 22:39:46

标签: java regex

如果我有一个字符串,例如

setting=value

如何删除'='并将其转换为分别包含'setting'和'value'的两个单独的字符串?

非常感谢!

2 个答案:

答案 0 :(得分:10)

有两种选择让人想起。

split()String的第一个=

String[] pieces = s.split("=", 2);
String name = pieces[0];
String value = pieces.length > 1 ? pieces[1] : null;

第二个使用正则表达式直接解析String

Pattern p = Pattern.compile("(.*?)=(.*)");
Matcher m = p.matcher(s);
if (m.matches()) {
  String name = m.group(1);
  String value = m.group(2);      
}

第二个给你更多力量。例如,如果将模式更改为:

,则可以自动丢失空白区域
Pattern p = Pattern.compile("\\s*(.*?)\\s*=\\s*(.*)\\s*");

答案 1 :(得分:1)

您不需要正则表达式,只需执行:

String str = "setting=value";
String[] split = str.split("=");
// str[0] == "setting", str[1] == "value"

如果limit中也可以设置value,您可能需要设置=;请参阅javadoc