正则表达式 是一种匹配文本的模式。
^ 匹配必须出现在字符串开头或者行的开头
$ 匹配必须出现在字符串结尾或者行的结尾
string str = "I am April.";
string str2 = Regex.Replace(str, "^", "Hi,"); //str2 = "Hi,I am April."
string str3 = Regex.Replace(str, "$", "welcome"); //str3 = "I am April.welcome"
\w 匹配字母,数字,下划线
\D 匹配数字以外的字符
string str = "123456"; //检查是否全为数字
bool isMatch = Regex.IsMatch(str, @"^\d*$"); //isMatch = True
[] 匹配中括号中的任意一个字符, [abc] 表示匹配abc中的任意一个,[a-z]表示匹配a-z中的任意一个.
[^a] 匹配a以外的任意一个字符
string str = "Hi,April"; //匹配APr以外的字符并替换为*
string str2 = Regex.Replace(str, @"[^Apr]", "*"); //str2 = "***Apr**"
{n} 匹配前面的字符n次
{n,} 匹配前面的字符n次或多于n次
{n,m} 匹配前面的字符n次到m次
? 重复零次或一次
+ 重复一次或多次
* 重复零次或多次
string str = "1048032143"; //检测是否为5-12位数字
bool result = Regex.IsMatch(str, @"^\d{5,12}$"); //result = True
| 或运算,满足其中一个匹配条件即可。
string str = "Hi,April,age:22";
MatchCollection results = Regex.Matches(str, @"\d|[a-z]|[A-Z]"); //匹配数字或字母
foreach (Match result in results)
{
Console.Write(result);
} //HiAprilage22
string str = "Hi,April,age:22"; //用:或,分割字符串
string[] res = Regex.Split(str,@"[:,]"); //res = {"Hi","April","age","22"}
()对表达式分组,如 @"(ab\W{2}){2}" 等价于 @"ab\W{2}ab\W{2}"
string str = "Hi!,Hi!,April";
string res = Regex.Replace(str, @"(Hi\W{2}){2}","Hello"); //HelloApril