c#正则表达式 ipv4地址
2017-08-22 21:17
127 查看
Ip地址正则表达式:
@"^((([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])\.){3}([1-9]?\d|1\d\d|2[0-4]\d|25[0-5]))$"
简单介绍一下正则(详情百度):
[0-9] 等价 \d 字符串里有 0到9之间的数字字符即可匹配 如a1a
^[0-9] 匹配前缀为以上条件的字符串 如 1aa
[^0-9] 字符串里有除了0-9 以外的字符 即可匹配 如 a
[0-9]$ 匹配后缀为0-9之间的字符串 如 a1
^[0-9]$ 字符串只有一个0-9的字符 即可匹配 如 1
^[0-9]|[0-9]$ 字符串前缀和后缀都是0-9 即可匹配 如 1a9
^代表字符串的开始位置 也就是第一个字符 也可以是一群^()
$代表字符串的结束位置 也就是最后一个字符 也可以是一群()$
分开可匹配前缀后缀 合起来^()$ 匹配整个字符串
优先级(详情百度):| 的优先级是最低的
以下介绍如何一步一步的写出ip地址的正则表达式:
1.判断是否只一个数字字符
pattern = "^[0-9]$";
2.判断是否只是0-99的数字 注意:01!=1
pattern = "(^[0-9]$)|(^[1-9][0-9]$)";
3.判断是否只是0-255之间的数字
pattern = "(^[0-9]$)|(^[1-9][0-9]$)|(^1[0-9][0-9]$)|(^2[0-4][0-9]$)|(^25[0-5]$)";
看着好烦 简化一下 只留下一个 ^$ 注意要加括号 因为 | 的优先级是最低的
pattern = "^(([0-9])|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))$";
同理 2 也可简化为:
pattern = "^(([0-9])|([1-9][0-9]))$";
继续简化:
pattern = @"^[1-9]?\d$";
4.判断 0-255.0-255.0-255.
pattern = @"^(((([1-9]?\d)|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))\.){3})$";
可得注意()括号 {3}表示重复三次 .可匹配任意字符 \.只能匹配. @配合\转义
5.判断ip地址的格式
pattern=@"^(((([1-9]?\d)|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))\.){3}(([1-9]?\d)|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))$";
6.对其简化 由于|的优先级最低 可去掉其周围的)( [0-9]=\d
pattern=@"^((([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])\.){3}([1-9]?\d|1\d\d|2[0-4]\d|25[0-5]))$";
@"^((([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])\.){3}([1-9]?\d|1\d\d|2[0-4]\d|25[0-5]))$"
简单介绍一下正则(详情百度):
[0-9] 等价 \d 字符串里有 0到9之间的数字字符即可匹配 如a1a
^[0-9] 匹配前缀为以上条件的字符串 如 1aa
[^0-9] 字符串里有除了0-9 以外的字符 即可匹配 如 a
[0-9]$ 匹配后缀为0-9之间的字符串 如 a1
^[0-9]$ 字符串只有一个0-9的字符 即可匹配 如 1
^[0-9]|[0-9]$ 字符串前缀和后缀都是0-9 即可匹配 如 1a9
^代表字符串的开始位置 也就是第一个字符 也可以是一群^()
$代表字符串的结束位置 也就是最后一个字符 也可以是一群()$
分开可匹配前缀后缀 合起来^()$ 匹配整个字符串
优先级(详情百度):| 的优先级是最低的
以下介绍如何一步一步的写出ip地址的正则表达式:
1.判断是否只一个数字字符
pattern = "^[0-9]$";
2.判断是否只是0-99的数字 注意:01!=1
pattern = "(^[0-9]$)|(^[1-9][0-9]$)";
3.判断是否只是0-255之间的数字
pattern = "(^[0-9]$)|(^[1-9][0-9]$)|(^1[0-9][0-9]$)|(^2[0-4][0-9]$)|(^25[0-5]$)";
看着好烦 简化一下 只留下一个 ^$ 注意要加括号 因为 | 的优先级是最低的
pattern = "^(([0-9])|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))$";
同理 2 也可简化为:
pattern = "^(([0-9])|([1-9][0-9]))$";
继续简化:
pattern = @"^[1-9]?\d$";
4.判断 0-255.0-255.0-255.
pattern = @"^(((([1-9]?\d)|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))\.){3})$";
可得注意()括号 {3}表示重复三次 .可匹配任意字符 \.只能匹配. @配合\转义
5.判断ip地址的格式
pattern=@"^(((([1-9]?\d)|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))\.){3}(([1-9]?\d)|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))$";
6.对其简化 由于|的优先级最低 可去掉其周围的)( [0-9]=\d
pattern=@"^((([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])\.){3}([1-9]?\d|1\d\d|2[0-4]\d|25[0-5]))$";
相关文章推荐
- c#使用正则表达式匹配ipv4地址
- 黄聪:C#正则表达式整理备忘
- C#中利用正则表达式获取字符串中双引号包含的内容
- 解读C#正则表达式
- c#正则表达式中特殊字符转义
- 在C#中使用正则表达式验证数据格式
- 正则表达式在c# 与js 中如何使用
- C#常用正则表达式
- C# 使用正则表达式去掉字符串中的数字
- 艾伟_转载:C#正则表达式整理备忘
- 转 C#正则表达式小结 匹配
- C#中使用正则表达式验证电话号码、手机号、身份证号(转)
- C#使用正则表达式验证电话号码、手机号、身份证号代码
- 解读C#中的正则表达式2
- [转]c#一些常用的正则表达式总结
- [转]C#正则表达式小结
- C# 正则表达式例子
- c# 用正则表达式在指定的字符串中每隔指定个数的文字插入指定字符串
- C# 正则表达式 使用介绍
- 【转】C# 使用正则表达式去掉字符串中的数字,或者去掉字符串中的非数字