匹配一个特定的字符然后另一个然后减去( - )

时间:2018-04-25 14:38:18

标签: java regex

我正在尝试匹配以下正则表达式: 我有一个字符串:F-F-W-F 我需要写一个正则表达式,检查第一个字符是W还是F后跟 - 。检查字符串F-F-W-F

这就是我提出的:

if(SBAKTIV.matches("[WF]{1}-[WF]{1}-[WF]{1}-[WF]{1}")) {
        SBAKTIVMessageForLog = "SBAKTIV: Okay";
        return true;

1 个答案:

答案 0 :(得分:1)

正如评论中所提到的,你的正则表达式很好。或者也许可以缩短为([WF]-)*[WF]([WF]-){3}[WF]

我只是发布一个答案,提供一个非正则表达式的解决方案*,以防你最终想要/需要其中一个:

for (int i = 0; i < word.length(); i++) {
    if (i % 2 == 0) {
        if (word.charAt(i) != 'F' && word.charAt(i) != 'W') {
            return false;
        }
    } else if (word.charAt(i) != '-') {
        return false;
    }
}
return true;

Demo

*这显然基于长度可以,不是空等等