用Java提取值的模式

时间:2016-11-17 23:43:50

标签: java regex

我有各种各样的字符串:

Status-Active
Status-Inactive 10

我想只获得状态为“有效”和“无效”而没有空格和数字。

我尝试使用(?<=-)\S+并在网站上工作,但在Java中使用它无法找到任何内容。

private final Pattern reg = Pattern.compile("(?<=-)\\S+");
...
Matcher m = reg.matcher(status);
if(m.matches())
    status = m.group(0);

2 个答案:

答案 0 :(得分:5)

我建议你有一个尽可能接近匹配字符串的模式。

Pattern patter = Pattern.compile("Status-(Active|Inactive)");

然后使用组1查找状态字符串。

答案 1 :(得分:1)

我不会在你的情况下使用正则表达式,而是:

status = line.contains("Inactive")?"Inactive":"Active";