我正在尝试匹配以下正则表达式:
我有一个字符串: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;
答案 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;
*这显然基于长度可以,不是空等等