我正在嘗試使用Java編程一個Minecraft Bukkit插件,該插件將查找何時將IP置於聊天中,因此我使用的是正則表達式。我需要的是正則表達式來查找字符串中的任何地方,一個字符後跟一個句點後跟另一個字符,如127.0.0.1
是有效的,但它也需要能夠找到它周圍的任何字符,如This IP: 127.0.0.1 is your localhost IP
。這是我當前的代碼:Java正則表達式查找任意字符串中的字符
Pattern p = Pattern.compile("[a-z1-9]" + "." + "[a-z1-9]");
Matcher matcher = p.matcher(message);
if(matcher.matches()){
player.sendMessage(plugin.prefix + "§7You cannot advertise an IP address!");
event.setCancelled(true);
}
這個代碼將只搜索類似127.0
並不僅如此,但正如我前面所說,我需要它來尋找任何字符串[letter/number].[letter/number]
任何金額,如果這是有道理的。
,應該閱讀一些[正則表達式教程](http://www.regular-expressions.info/tutorial.html),或在最少嘗試在提問之前搜索[regex for IP](http://stackoverflow.com/questions/106179/regular-expression-to-match-hostname-or-ip-address)。 '.'是特殊字符,意思是「除了新行標記之外的任何字符」和'[a-z1-9]'匹配範圍爲'az'或'1-9'的*一個*字符,所以您需要添加量詞。另外,如果你想匹配IPv4,那麼'a-z'在你的正則表達式中做了什麼? – Pshemo
@Pshemo閱讀我的評論plsgogame的回答。 – DonkeyCore
如果你還想找到像「jointhis.server.com」這樣的主機名,那麼你肯定應該閱讀我之前評論中鏈接的問題答案。 – Pshemo