I think this regex should do this:
String parseCommand = "vlan4094"; if (parseCommand.matches(".*?vlan([1-3][0-9]{3}|" + "[1-9][0-9]{0,2}|" + "40(9[0-4]|[0-8][0-9])).*")) System.out.println("matches");
[1-3][0-9]{3} - 1000-3999
[1-9][0-9]{0,2} - 1-999
9[0-4] - 90-94
[0-8][0-9] - 00-89
40(9[0-4]|[0-8][0-9]) - 4000-4094
Something like this is probably simpler:
String parseCommand = "vlan4094"; if (parseCommand.startsWith("vlan")) { int v = Integer.parseInt(parseCommand.substring(4)); if (v >= 1 && v <= 4094) }
Proposed Change:
Replace:
parseCommand.contains("Fa1/0") || parseCommand.contains("Fa1/1") || parseCommand.contains("Fa1/2") || parseCommand.contains("Fa1/3") || parseCommand.contains("Fa1/4") || parseCommand.contains("Fa1/5") || parseCommand.contains("Fa1/6") || parseCommand.contains("Fa1/7") || parseCommand.contains("Fa1/8") || parseCommand.contains("Fa1/9")
with
parseCommand.matches(".*?Fa1/[0-9].*")
source share