纳金网
标题:
C#正则表达式的学习
[打印本页]
作者:
may
时间:
2016-3-12 23:55
标题:
C#正则表达式的学习
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
namespace CSharpTest01
{
class Program
{
static void Main(string[] args)
{
//C#正则表达式的学习Regex在System.Text.RegularExpressions;下
//1:定位元字符"^"、"$"
//"^":匹配必须出现在字符串的开头或行的开头
//"$":匹配出现在以下位置:字符串结尾、字符串结尾处的\n之前或行的结尾
//string s = "the game";
//string str1 = Regex.Replace(s, "^", "Begin ");//搜索字符串,符合正则表达式则在相应位置替换
//Console.WriteLine(str1);
//string str2 = Regex.Replace(s, "$", " end");//搜索字符串,符合正则表达式则在相应位置替换
//Console.WriteLine(str2);
//2:基本语法元字符"."、"\w"、"\W"、"\s"、"\S"、"\d"、"\D"、"\B"
//"." :匹配除换行符以外的任意字符
//"\w":匹配字母、数字、下划线、汉字(大小写字母、0-9数字、下划线_)。"\W":"\w"的补集(除了\w之外的)
//"\s":匹配任意空白符(包括换行符\n、回车符\r、制表符\t、垂直制表符\v、换页符\f)。"\S":\s的补集
//"\d":匹配数字(0-9数字)。"\D":表示\d的补集(除0-9之外)
//"\B":匹配不是单词开始或结束的位置
//string s = Console.ReadLine();
//string MatchNumber = @"^\d*$";//正则表达式:匹配数字(\d匹配数字,*一个或者多个,^开头,$与最近的一个元字符\d匹配,表示结尾)
//bool isMatch = Regex.IsMatch(s, MatchNumber);
//Console.WriteLine(isMatch);
//3:[abc]、[a-c]、[^x]、[^axz]
//"[abc]":匹配括号中的字符
//"[a-c]":匹配a到c之间的字符
//"[^x]":匹配除x之外的任意字符
//"[^axz]":匹配除axz之外的任意字符
//string s = "I am Robot";
//string patten = @"[^aRo]";//除了aRo这几个字符以外的任意字符
//string str = Regex.Replace(s, patten, "*");
//Console.WriteLine(str);
//2:重复描述字符{n}、{n,}、{n,m}、?、+、*
//{n} :匹配前面的字符n次
//{n,}:匹配前面的字符n次或多于n次
//{n,m}:匹配前面的字符n到m次
//?:重复0次或1次
//+:重复1次或更多次
//*:重复0次或更多次
//string qq1 = "31313123";//输入的QQ号5-12位数字合法
//string qq2 = "153151351132121";
//string qq3 = "123d2s2";
//string MatchNumber = @"^\d{5,12}$";
//Console.WriteLine(Regex.IsMatch(qq1, MatchNumber));
//Console.WriteLine(Regex.IsMatch(qq2, MatchNumber));
//Console.WriteLine(Regex.IsMatch(qq3, MatchNumber));
//2:择一匹配字符 "|"
//"|" :将两个匹配条件进行逻辑或(Or)运算
string s = "kl454&^%$世纪12s";//检索字符串里面的数字和小写字母
string patten = @"\d|[a-z]";
MatchCollection col = Regex.Matches(s, patten);//Matches做多匹配
foreach (Match temp in col)//MatchCollection里面每一个都是Match
{
Console.WriteLine(temp);//输出match实例相当于调用其ToString()方法;
}
s = "hello,word;nice.good";
patten = @"[,]|[;]|[.]";//或者@"[,;.]"
string[] resArray = Regex.Split(s, patten);
foreach (string temp in resArray)
{
Console.WriteLine(temp);
}
}
}
}
复制代码
欢迎光临 纳金网 (http://old.narkii.com/club/)
Powered by Discuz! X2.5