[英]Java Regex: How to extract ip address except the last part from the string?
[英]Simple Java regex to extract IP address and port from enclosing string
考慮一對IPv4
或IPv6
地址和端口,由/
或:
分隔,例如
10.10.10.10:1234
端口是可選的,所以字符串就像
10.10.10.10/
10.10.10.10:
10.10.10.10
也有效。 地址/端口對可以后跟空格或逗號字符,它是更長的封閉字符串的一部分。
從封閉字符串中提取單獨字段中的2個值(不使用字符串操作函數)會是一個非常簡單的正則表達式嗎?
例如,表達式如
(?<address>[^\s,]+[^\s,:\.])((/|:)(?<port>\d*))?
在同一個字符串中提取地址和端口。
這里的目標是使用最簡單的正則表達式進行提取,即使它不是100%准確(即,即使它也匹配其他字符串)。
([0-9.]*)(\/|:)([0-9]*)
這是正則表達式。 第一組給你IP。 第三組為您提供端口號。 中間組給出分隔符ie /或:用於交替。 它可以被忽略。
使用commons驗證器 :
InetAddressValidator validator = InetAddressValidator.getInstance();
if (validator.isValid(ipAddress) {
// cool, isn't valid
}
throw new InvalidAddressException(ipAddress);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.