我有各种各样的字符串:
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);
答案 0 :(得分:5)
我建议你有一个尽可能接近匹配字符串的模式。
Pattern patter = Pattern.compile("Status-(Active|Inactive)");
然后使用组1查找状态字符串。
答案 1 :(得分:1)
我不会在你的情况下使用正则表达式,而是:
status = line.contains("Inactive")?"Inactive":"Active";