正则表达式学习笔记

2009年5月11日星期一

正则表达式学习笔记

1、Regex类可以用来创建正则表达式,还提供了许多方法。
如:Regex.Replace(stringinput,Stringpattern,stringreplacement);
-------RegexOption枚举
IgnoreCase忽略大小写。默认情况区分大小写
RightToLeft从右到左查找输入字符串。
None不设定标志。
MiltiLine指定^与$可以匹配行的开头和结尾,以及字符串的开头和结尾。
SingleLine规定特殊字符.匹配任一字符。换行符除外。
例:RegexOptions.IgnoreCase
Regex.IsMatch(Mystring,YWSM,RegexOptions.IgnoreCase|RegexOptions.RightToLeft):
-------(两个主要的)类构造函数
Regex(stringpattern);
Regex(stringpattern,RegexOptionoptions);
例:匹配YWSM:
staticvoidMain(string[]args)
{RegexmyRegex=newRegex(YWSM);
System.Console.WriteLine(myregex.IsMatch(Thefirstthreelettersof+thealphabetareYWSM));}
输出:True如需设置区分大小写可用
RegexmyRegex=newRegex(YWSM,RegexOption.IgnoreCase);
-------IsMatch()方法
该方法可以测试字符串,看它是否匹配正则表达式的模式。如果发现了一次匹配,返回True,否则为False。IsMatch()有一个静态的重载方法,使用它时可以无需显式创建一个Regex对象。
重载形式:
publicboolRegex.IsMatch(stringinput);
publicboolRegex.IsMatch(stringinput,intstartat);
publicstaticboolRegex.IsMatch(stringinput,stringpattern);
publicstaticboolRegex.IsMatch(stringinput,stringpattern,RegexOptionoptions);
input:指定了包含将检索的文本的字符串。
sartat:指定了搜索的起始字符位置。
pttern:指定将匹配的样式。
options:匹配行为的选项。
例:stringinputstring=Welcometotheywicc,ywsmxy!;
if(Regex.IsMatch(inputstring,ywicc,RegexOptions.IgnoreCase))
Console.WriteLine(MatchFound);
Else
Console.WriteLine(NoMatchFound);
------Replace()方法
用指定的字符串代替一个匹配模式。
---基本方法有:
publicstaticstringRegex.Replace(stringinput,stringpattern,stringreplacement);
publicstaticstringRegex.Replace(stringinput,stringpattern,stringreplacement,RegexOptionoptions);
例:用AAA替换BBB的所有实例代码:
stringinputstring=WelcometotheAAA!;
inputstring=Regex.Replace(inputstring,BBB,AAA);
Console.WriteLine(inputstring);
----非静态方法,可以指定替换次数的最大值以及开始下标:
PublicstringReplace(stringinput,stringreplacement);
PublicstringReplace(stringinput,stringreplacement,intcount);
PublicstringReplace(stringinput,stringreplacement,intcount,intstartat);
例:使用XXX替换456之后的123,最多替换两次,代码如下:
stringinputstring=123,456,123,123,123,789,333;
Regexregexp=newRegex(123);
Inputstring=regexp.Replace(inputstring,XXX,2,4)
Console.WriteLine(inputstring);
输出:123,456,XXX,XXX,123,789,333
-------Split()方法
在每次发现匹配的位置拆分字符串。返回一个字符串数组。
usingSystem;
usingSystem.Text;
usingSystem.Text.RegularExpressions;
usingSystem.Windows.Forms;
classmysplit
{
staticvoidMain(string[]args)
{
stringinputstring=123,456,789,ads;
string[]splitResults;
splitresults=Regex.Split(inputstring,,);
StringBuilderresultsstring=newStringBuilder(32);
foreach(stringstringelementinsplitresults)
{
resultsstring.Append(stringelement+\n);
}
MessageBox.Show(resultsString.ToString());
}

0 评论:

发表评论