正则表达式---------------ip地址

正则表达式

捕获组

      语法:

字符 

描述

示例

(pattern)

匹配pattern并捕获结果,自动设置组号。

 (abc)+d

匹配abcd或者abcabcd

(?<name>pattern)  或(?'name'pattern)

匹配pattern并捕获结果,设置name为组名。

 

\num

对捕获组的反向引用。其中 num 是一个正整数。

(\w)(\w)\2\1

匹配abba

\k< name >或\k' name '

对命名捕获组的反向引用。其中 name 是捕获组名。

(?<group>\w)abc\k<group>

匹配xabcx

 

      使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。默认情况下,每个捕获组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。


非捕获组

      语法:

字符 

描述

示例

(?:pattern)

匹配pattern,但不捕获匹配结果。

'industr(?:y|ies)

匹配'industry'或'industries'。

(?=pattern)

零宽度正向预查,不捕获匹配结果。

'Windows (?=95|98|NT|2000)'

匹配 "Windows2000" 中的 "Windows"

不匹配 "Windows3.1" 中的 "Windows"。

(?!pattern)

零宽度负向预查,不捕获匹配结果。

'Windows (?!95|98|NT|2000)'

匹配 "Windows3.1" 中的 "Windows"

不匹配 "Windows2000" 中的 "Windows"。

(?<=pattern)

零宽度正向回查,不捕获匹配结果。

'2000 (?<=Office|Word|Excel)'

匹配 " Office2000" 中的 "2000"

不匹配 "Windows2000" 中的 "2000"。

(?<!pattern)

零宽度负向回查,不捕获匹配结果。

'2000 (?<!Office|Word|Excel)'

匹配 " Windows2000" 中的 "2000"

不匹配 " Office2000" 中的 "2000"。


 非捕获组只匹配结果,但不捕获结果,也不会分配组号,当然也不能在表达式和程序中做进一步处理。

      首先(?:pattern)与(pattern)不同之处只是在于不捕获结果。

 

IP的栗子
<html>
<head>
<title>最简洁的IP判断正则表达式</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
<script type="text/javascript" src="http://files.cnblogs.com/Zjmainstay/jquery-1.6.2.min.js"></script>
</head>
<body>
IP字段: <input type="text" id="ip" />
判断结果:<input type="text" id="result" />
<script type="text/javascript">
  $(document).ready(function(){
  /**
  * 最简洁的IP判断正则表达式
  * 25[0-5] 250-255
  * 2[0-4]\d 200-249
  * [01]?\d\d? 000-199(0-9 \d)(10-99 \d\d)(100-99 1\d\d)
  * ($|(?!\.$)\.) 结束 或者 不以.结束的加上.
  * (?!^0{1,3}(\.0{1,3}){3}$) 排除 0.0.0.0 /^(?!^0{1,3}(\.0{1,3}){3}$)((25[0-5]|2[0-4]\d|[01]?\d\d?)($|(?!\.$)\.)){4}$/
  * (?!^255(\.255){3}$) 排除 255.255.255.255
  */
  function validateIP(str){
    return !!str.match(/^((25[0-5]|2[0-4]\d|[01]?\d\d?)($|(?!\.$)\.)){4}$/);
  }
  $("#ip").blur(function(){
    var m = validateIP($(this).val());
    m = m || 'null';
    $("#result").val(m);
  });
});
</script>
</body>
</html>

 

此栗子考察的知识有:正则表达式(?!零宽度负向预查,不捕获匹配结果。),match的用法

 

转载于:https://www.cnblogs.com/FineDay/articles/6727052.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值