Java中提取值的模式

Java中提取值的模式,java,regex,Java,Regex,我有各种字符串,如下所示: Status-Active Status-Inactive 10 我只想获得“活动”和“非活动”状态,没有空格和编号 我尝试了(?我建议您使用尽可能接近匹配字符串的模式 Pattern patter = Pattern.compile("Status-(Active|Inactive)"); 然后使用组1查找状态字符串。我建议您使用尽可能接近匹配字符串的模式 Pattern patter = Pattern.compile("Status-(Active|Inac

我有各种字符串,如下所示:

Status-Active
Status-Inactive 10
我只想获得“活动”和“非活动”状态,没有空格和编号


我尝试了
(?我建议您使用尽可能接近匹配字符串的模式

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

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

我建议您使用尽可能接近匹配字符串的模式

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

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

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

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

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

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

我会尝试像
((?:In)?[Aa]ctive)这样的东西。
我会尝试像
((?:In)?[Aa]ctive)这样的东西
这对我来说似乎很脆弱。如果输入因任何原因发生变化,它将默认新的输入表示“活动”。正则表达式的优点是它是一个隐式断言,表明输入是正确的。@sprinter说得对。是的,当存在除这两种状态之外的其他状态时,它会中断。否则,这个特殊的解析工作正常,看起来更简单。这对我来说似乎很脆弱。如果输入因任何原因发生更改,它将默认新输入表示“活动”。正则表达式的优点是它是一个隐式断言,表明输入是正确的。@sprinter说得对。是的,当存在除这两种状态之外的其他状态时,它将中断。O因此,这种特别的解决方案可以工作并且看起来更简单。