Java 检查字符串,正则表达式问题?
目前,我正在检查以下字符串:Java 检查字符串,正则表达式问题?,java,string,loops,Java,String,Loops,目前,我正在检查以下字符串: if(parseCommand.contains("vlan1") || parseCommand.contains("Fa0/1i") || parseCommand.contains("Fa0/1o") || parseCommand.contains("Fa1/0") || parseCommand.contains("Fa1/1") || parseCommand.contains("Fa1
if(parseCommand.contains("vlan1") || parseCommand.contains("Fa0/1i")
|| parseCommand.contains("Fa0/1o") || 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") || parseCommand.contains("Fa1/11")
|| parseCommand.contains("Gi0")) {
//do things here
}
然而,它可能包含vlan1到vlan4094,我必须检查这些。最简单的方法是什么
我试过这样做,只是为了匹配一个0-3位数的vlan 1-9,但没有找到任何结果:
if(parseCommand.matches(".*vlan[1-9](\\d){0,3}") || parseCommand.contains("Fa0/1i")
|| parseCommand.contains("Fa0/1o")|| 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") || parseCommand.contains("Fa1/11")
|| parseCommand.contains("Gi0")) {
即使我尝试了,也没有发现,为什么
if(parseCommand.matches(“.*vlan.*”
)对于被捕获的新行字符,使用.matches((?).*vlan.*)
左右;请参阅。这应该足够了vlan[\\d]{1,4}
我想。你能给出一个示例命令来测试吗?你想要什么类型的命令?任何包含vlan1-vlan4094的字符串,任何东西都可以在我之前或之后出现,我可能会遗漏一些东西。但是我不确定你应该在正则表达式中包含这些句点吗?正则表达式看起来很好,就像“vlan1”。匹配(.*vlan[1-9](\\d){0,3})
返回true
。您确定parseCommand包含“vlan1”
?我确定,因为parseCommand.contains(“vlan1”)工作正常。我在使用@Mementori和不使用@Mementori时都试过,都不起作用,将重试。在vlan[\\d]{1,4}中找不到任何内容方法,可能需要。*这很有效,谢谢,我不明白为什么其他答案不起作用?然后字符串中有一个换行字符\n
,而该字符与
不匹配。命令(?s)
也匹配dot的\n
。我明白了,换行符必须直接出现在vlan之前或之后才能影响它,还是字符串中的任何地方换行符都很重要?如果没有(?s)
,第一个*
不匹配(如果换行符出现在“vlan”之前),或者如果换行符出现在“vlan”之后,第二个*
。顺便说一下,\r
也与(?s)
DOTALL匹配。