[英]IP address validation with wildcard character
String ip = "1.1.&.&";
String WILDCARD_CHARACTER = "&";
String REGEX_IP_ADDRESS_STRING = "(?:(?:"
+ WILDCARD_CHARACTER
+ "|25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:"
+ WILDCARD_CHARACTER + "|25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)";
Pattern p = Pattern.compile(REGEX_IP_ADDRESS_STRING1);
Matcher m = p.matcher(ip);
System.out.println("Does it match? " + m.matches());
上面編碼的IP驗證非常有效。 但是我想對通配符進行一些修改,這會導致問題。
即我想在通配符之后對所有輸入進行通配。
正則表達式中的哪些修改可以幫助我實現這一目標? 誰能幫忙嗎?
我建議以下內容(我在此正則表達式中使用了文字&
;當然您可以將其更改為+ WILDCARD_CHARACTER
構造):
Pattern regex = Pattern.compile(
"^ # Anchor the match at the start of the string\n" +
"(?: # Match either...\n" +
" & # the wildcard character\n" +
" | # or a number between 0 and 255\n" +
" (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\n" +
" \\. # followed by a dot, followed by...\n" +
" (?: # ...either...\n" +
" & # the wildcard character\n" +
" | # or a number etc. etc.\n" +
" (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\n" +
" \\.\n" +
" (?:\n" +
" &\n" +
" |\n" +
" (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\n" +
" \\.\n" +
" (?:\n" +
" &\n" +
" |\n" +
" (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\n" +
" )\n" +
" )\n" +
" )\n" +
")\n" +
"$ # Anchor the match at the end of the string",
Pattern.COMMENTS);
(?:2 [0-4] \\ d | 25 [0-5] | 1 \\ d \\ d | \\ d \\ d | \\ d)。(?: 2 [0-4] \\ d | 25 [0- 5] | 1 \\ d \\ d | \\ d \\ d | \\ d)。(?: 2 [0-4] \\ d | 25 [0-5] | 1 \\ d \\ d | \\ d \\ d | \\ d )。(?: 2 [0-4] \\ d | 25 [0-5] | 1 \\ d \\ d | \\ d \\ d | \\ d)|(?:2 [0-4] \\ d | 25 [ 0-5] | 1 \\ d \\ d | \\ d \\ d | \\ d)。(?: 2 [0-4] \\ d | 25 [0-5] | 1 \\ d \\ d | \\ d \\ d | \\ d)。(?: 2 [0-4] \\ d | 25 [0-5] | 1 \\ d \\ d | \\ d \\ d | \\ d)。&|(?:2 [0-4] \\ d | 25 [0-5] | 1 \\ d \\ d | \\ d \\ d | \\ d)。(?: 2 [0-4] \\ d | 25 [0-5] | 1 \\ d \\ d | \\ d \\ d | \\ d)。&|(?:2 [0-4] \\ d | 25 [0-5] | 1 \\ d \\ d | \\ d \\ d | \\ d)。&|&
一條線上全部符合您的要求
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.