C# 学习笔记 -- 第六天 正规表达式
来源:互联网 发布:马斯洛安全感测试知乎 编辑:程序博客网 时间:2024/04/28 04:36
/////////////////////////////////////////////////
/
/ C# 学习笔记 -- 第六天 正规表达式
/
/ YFP 2005-12-23
/
/////////////////////////////////////////////////
正规表达式的使用场合主要是在验证用户输入,快速查找替换字符串。而不是像某些人想的用在控制显示格式上,如果要控制数据输出时的显示格式,请使用格式化字符串。这两者是不同的概念。
在微软MSDN中有很详细的技术资料 http://msdn.microsoft.com/library/CHS/cpgenref/html/cpconRegularExpressionsLanguageElements.asp
这里我只举个简单的例子,这个例子控制用户只能输入小于1的小数,而且只能输入两位小数。
例:
using System;
using System.Text.RegularExpressions;
namespace first
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
Regex num = new Regex(@"^[0]/./d{2}"); //注意:这里的字符串就是更够实现限制的正规表达式
string input;
Console.WriteLine("Enter a number: ");
input = Console.ReadLine();
while ( num.Match(input).Success == false)
{
Console.WriteLine("Invalid input. Try again.");
Console.WriteLine("Enter a number: ");
input = Console.ReadLine();
}
Console.WriteLine("Validated!");
}
}
}
下面来解释一下这个正规表达式。首先的“@”符号是为了关闭转义处理过程,不然会看到更多的斜杠。
其次在双引号之间的第一个字符是“^”,他表示这个规则判断的起始位置从字符串起始位置开始。
“[0]”表示第一个字符必须是“[]”内字符集合中的任意一个字符,此时“[]”内只有一个“0”,那么也就是说输入的第一个字符必须是0。
紧接着是一个“/.”,接下来“/d{2}”表示必须在“.”后输入两个数字。注意这里不能只输入一个点,因为“.”表示除了换行符以外的任何字符。所以还是要加转义字符“/”。
以此类推,下面将常用的正规表达式语法给出被查。
正规表达式单字符类:
项目 描述
/d 任何数字
/D 任何非数字
/ws 任何单词字符
/W 任何非单词字符
/s 任何空白字符
/SW 任何非空白
范围字符类和集合类:
项目 描述
. 除了换行符以外的任何字符
/p{uc} Unicode字符类型uc内的任何字符
/P{uc} 任何不属于Unicode字符类型uc的字符
[abdc] 该字符集中的任何字符
[^abdc] 这组字符集以外的任何字符
字符类量词:
项目 描述
* 0个或多个字符
+ 1个或多个字符
? 0个或1个字符
{n} 正好n个字符
{n,} 至少n个字符
{n,m} 至少n个字符,但不多于m个字符
开始匹配的位置
项目 描述
^ 从字符串的开始或新行的开始
$ 换行符之前或该行末的字符串结尾
/G 从上次匹配结束的地方开始
/A 字符串的开始
/b 出现在字符边界(用于字母数字和非字母数字)的匹配
/B 并非出现在单词边界的字符
/z 从字符串的结尾,包括换行符
/Z 换行符之前的字符串结尾
- C# 学习笔记 -- 第六天 正规表达式
- 详解C#正规表达式
- java 正规表达式学习
- 黑马程序员---c#正规表达式
- Java 正规表达式 总结笔记
- 正规表达式学习日志摘要
- C#学习第六天
- 第六天学习笔记
- 第六天学习笔记
- 学习笔记第六天
- Linux学习十七、正规表达式练习题
- 正规表达式
- 正规表达式
- 正规表达式
- 正规表达式
- 正规表达式
- C#学习之第六天
- 学习笔记2 C# 表达式
- 6,VC里一些容易混淆的地方(转自VCMFC的BLOG)
- How To Install On Debian with Several Codecs
- 音箱选购基础知识
- 电影无极下载地址(HTTP下载)
- 母爱无边
- C# 学习笔记 -- 第六天 正规表达式
- 今天终于把程序运行起来了,高兴!
- 平安夜,练练打字
- 好久没听歌了。
- Google中国编程挑战赛第一轮
- 19位银行卡卡号检验源代码
- Google工程师详述Google的搜索结果排列算法 (ZT)
- struts开发 实践—实用小贴士
- 采用HttpServlet 实现web文件下载