正则表达式中\A,\z和^,$的区别
来源:百度文库 编辑:神马文学网 时间:2024/06/13 23:34:13
正则表达式中\A,\z和^,$的区别http://topic.csdn.net/t/20060802/23/4923167.html
\A,\z和^,$的主要差别在使用了RegexOptions.Multiline多行模式上,看下面两个示例:
string pattern = @"^abc";
string str = "zzz\nabc";
Regex regex = new Regex(pattern, RegexOptions.Multiline);
bool b = regex.IsMatch(str);
Console.WriteLine(b);
//True
string pattern = @"\Aabc";
string str = "zzz\nabc";
Regex regex = new Regex(pattern, RegexOptions.Multiline);
bool b = regex.IsMatch(str);
Console.WriteLine(b);
//False
再看MSDN的叙述:
^
指定匹配必须出现在字符串的开头或行的开头。有关更多信息,请参阅正则表达式选项中的 Multiline 选项。
$
指定匹配必须出现在以下位置:字符串结尾、字符串结尾的 \n 之前或行的结尾。有关更多信息,请参阅正则表达式选项中的 Multiline 选项。
\A
指定匹配必须出现在字符串的开头(忽略 Multiline 选项)。
\Z
指定匹配必须出现在字符串的结尾或字符串结尾的 \n 之前(忽略 Multiline 选项)。
\z
指定匹配必须出现在字符串的结尾(忽略 Multiline 选项)。
\A,\z和^,$的主要差别在使用了RegexOptions.Multiline多行模式上,看下面两个示例:
string pattern = @"^abc";
string str = "zzz\nabc";
Regex regex = new Regex(pattern, RegexOptions.Multiline);
bool b = regex.IsMatch(str);
Console.WriteLine(b);
//True
string pattern = @"\Aabc";
string str = "zzz\nabc";
Regex regex = new Regex(pattern, RegexOptions.Multiline);
bool b = regex.IsMatch(str);
Console.WriteLine(b);
//False
再看MSDN的叙述:
^
指定匹配必须出现在字符串的开头或行的开头。有关更多信息,请参阅正则表达式选项中的 Multiline 选项。
$
指定匹配必须出现在以下位置:字符串结尾、字符串结尾的 \n 之前或行的结尾。有关更多信息,请参阅正则表达式选项中的 Multiline 选项。
\A
指定匹配必须出现在字符串的开头(忽略 Multiline 选项)。
\Z
指定匹配必须出现在字符串的结尾或字符串结尾的 \n 之前(忽略 Multiline 选项)。
\z
指定匹配必须出现在字符串的结尾(忽略 Multiline 选项)。