C#中 正则表达式总结
来源:互联网 发布:淘宝女鞋店铺 编辑:程序博客网 时间:2024/04/29 01:27
1.正则表达式:我的理解就是,记录文本规则的代码,我主要运用它在.net表单验证中。
2.学习正则表达是的工具下载链接:http://www.unibetter.com/deerchao/downloads/RegexTester.zip
3.工具使用说明:
4.正则表达式有多种不同的风格。下表是在PCRE中元字符及其在正则表达式上下文中的行为的一个完整列表:
n
”匹配字符“n
”。“\n
”匹配一个换行符。序列“\\
”匹配“\
”而“\(
”则匹配“(
”。\n
”或“\r
”之后的位置。\n
”或“\r
”之前的位置。z
”以及“zoo
”。*等价于{0,}。zo+
”能匹配“zo
”以及“zoo
”,但不能匹配“z
”。+等价于{1,}。do(es)?
”可以匹配“do
”或“does
”中的“do
”。?等价于{0,1}。o{2}
”不能匹配“Bob
”中的“o
”,但是能匹配“food
”中的两个o。o{2,}
”不能匹配“Bob
”中的“o
”,但能匹配“foooood
”中的所有o。“o{1,}
”等价于“o+
”。“o{0,}
”则等价于“o*
”。o{1,3}
”将匹配“fooooood
”中的前三个o。“o{0,1}
”等价于“o?
”。请注意在逗号和两个数之间不能有空格。oooo
”,“o+?
”将匹配单个“o
”,而“o+
”将匹配所有“o
”。\
n
”之外的任何单个字符。要匹配包括“\
n
”在内的任何字符,请使用像“[.\
n
]
”的模式。\(
”或“\)
”。(|)
”来组合一个模式的各个部分是很有用。例如“industr(?:y|ies)
”就是一个比“industry|industries
”更简略的表达式。Windows(?=95|98|NT|2000)
”能匹配“Windows2000
”中的“Windows
”,但不能匹配“Windows3.1
”中的“Windows
”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。Windows(?!95|98|NT|2000)
”能匹配“Windows3.1
”中的“Windows
”,但不能匹配“Windows2000
”中的“Windows
”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始z|food
”能匹配“z
”或“food
”。“(z|f)ood
”则匹配“zood
”或“food
”。[abc]
”可以匹配“plain
”中的“a
”。[^abc]
”可以匹配“plain
”中的“p
”。[a-z]
”可以匹配“a
”到“z
”范围内的任意小写字母字符。[^a-z]
”可以匹配任何不在“a
”到“z
”范围内的任意字符。er\b
”可以匹配“never
”中的“er
”,但不能匹配“verb
”中的“er
”。er\B
”能匹配“verb
”中的“er
”,但不能匹配“never
”中的“er
”。c
”字符。[A-Za-z0-9_]
”。[^A-Za-z0-9_]
”。\x41
”匹配“A
”。“\x041
”则等价于“\x04&1
”。正则表达式中可以使用ASCII编码。.(.)\1
”匹配两个连续的相同字符。
5.正则表达式的常用匹配
1.匹配非负整数(正整数 + 0): ^\d+$
2.匹配正整数 : ^[0-9]*[1-9][0-9]*$
3.匹配非正整数(负整数 + 0): ^((-\d+)|(0+))$
4.匹配负整数:^-[0-9]*[1-9][0-9]*$
5.匹配整数: ^-?\d+$
6.匹配非负浮点数(正浮点数 + 0): ^\d+(\.\d+)?$
7.匹配正浮点数: ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
8.匹配非正浮点数(负浮点数 + 0): ^((-\d+(\.\d+)?)|(0+(\.0+)?))$ \
9.匹配负浮点数: ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
10.匹配浮点数 : ^(-?\d+)(\.\d+)?$
11.匹配由26个英文字母组成的字符串^[A-Za-z]+$
12.匹配由26个英文字母的大写组成的字符串 : ^[A-Z]+$
13.匹配由26个英文字母的小写组成的字符串: ^[a-z]+$
14.匹配由数字和26个英文字母组成的字符串: ^[A-Za-z0-9]+$
15.匹配由数字、26个英文字母或者下划线组成的字符串: ^\w+$
16.匹配中文字符的正则表达式: [\u4e00-\u9fa5]
17.匹配双字节字符(包括汉字在内):[^\x00-\xff]
18.匹配空行的正则表达式:\n[\s| ]*\r
19.匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
20.匹配首尾空格的正则表达式:(^\s*)|(\s*$)
21.中国身份证:(^\d{15}$)|(\d{17}(?:\d|x|X)$)
22.邮箱:^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$
23.手机号码:^(1(([35][0-9])|(47)|[8][01236789]))\d{8}$
24.手机号码电话号码同时验证(^\(?\d{3,4}[\)\-]?\d{5,10}$)|(^\[1358]d{10}$)
25.实现手机号前带86或是+86的情况:^((\+86)|(86))?(13)\d{9}$
26.电话号码与手机号码同时验证:(^(\d{3,4}-)?\d{7,8})$|(13[0-9]{9})
27.网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
28.图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
29.中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}
30.中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}
31.中国邮政编码:[1-9]{1}(\d+){5}
32.ip地址:^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$
33.简单的日期判断(YYYY/MM/DD):^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$
34.演化的日期判断(YYYY/MM/DD| YY/MM/DD): ^(^(\d{4}|\d{2})(\-|\/|\.)\d{1,2}\3\d{1,2}$)|(^\d{4}年\d{1,2}月\d{1,2}日$)$
35.时间yyyy-MM-dd HH:MM:SS :^[1-9][0-9]{3}-(0?[1-9]|1[0|1|2])-(0?[1-9]|[1|2][0-9]|3[0|1]) (0?[1-9]|1[0-9]|2[0-3]):(0?[0-9]|[1|2|3|4|5][0-9]):(0?[0-9]|[1|2|3|4|5][0-9])$
36.匹配网址URL的正则表达式:((http|ftp|https|file):\/\/([\w\-]+\.)+[\w\-]+(\/[\w\u4e00-\u9fa5\-\.\/?\@\%\!\&=\+\~\:\#\;\,]*)?)
“192.168.10.5[port=21,type=ftp]”,这个字符串表示IP地址为192.168.10.5的服务器的21端口提供的是ftp服务,其中如果“,type=ftp”部分被省略,则默认为http服务。请用程序解析此字符串,然后打印出“IP地址为***的服务器的***端口提供的服务为***” string str = "192.168.10.5[port=21,type=ftp]"; Match match = Regex.Match(str, @"^(\d{1,3}(\.\d{1,3}){3})\[port=(\d+),type=([a-zA-Z]+)\]$"); if (match.Success) { Console.WriteLine("ip:{0}", match.Groups[1].Value); Console.WriteLine("port:{0}", match.Groups[3].Value); Console.WriteLine("service:{0}", match.Groups[4].Value); } Console.ReadKey();
提取字符串中的Email地址 string msg = File.ReadAllText("1.htm"); MatchCollection matches = Regex.Matches(msg, @"([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)(\.[a-zA-Z]+)+"); foreach (Match item in matches) { Console.WriteLine("Groups[0]中的内容: {0}", item.Groups[0].Value); Console.WriteLine("\t用户名:{0},域名:{1}", item.Groups[1].Value, item.Groups[2].Value); } Console.ReadKey();
- C#中 正则表达式总结
- C#中正则表达式的总结
- c# 中常用的正则表达式总结
- c#正则表达式总结
- C# 正则表达式总结
- C#正则表达式总结
- C#中正则表达式
- C#常用正则表达式总结
- C#正则表达式总结罗列
- C#正则表达式简单总结
- 对C#中正则表达式的一些解读和总结
- 对C#中正则表达式的一些解读和总结
- 对C#中正则表达式的一些解读和总结
- c#中使用正则表达式
- C#中使用正则表达式
- c#可中正则表达式
- C#中使用正则表达式
- c#中正则表达式大全
- 旋转矩阵
- 链表在linux中的实现
- Unity3D插件NGUI之Scorll View(滑动图标)的制作(简洁版)
- Udp打洞,判断Nat网络类型-一种基于UDP协议实现P2P智能穿越NAT的方案
- android中使用handler的三种模式
- C#中 正则表达式总结
- NS2中对TCP数据包和ACK包的TCP Sink类的主要实现代码详尽剖析--吐血放送
- 解决安装oracle11g r2时提示pdksh conflicts with ksh-20100621-2.el6.i686问题
- 从100PV到1亿级PV网站架构演变
- 实数和实型变量;sizeof
- jsp中放Java代码的注意事项
- 关于CorePlot控制XY轴缩放的问题解决方案
- uva11292 The Dragon of Loowater (排序+贪心)
- NGUI研究院之Sprite精灵与精灵动画的使用(二)