string pattern = @"^[a-z]\w";//^后面的模式必须位于字符串的开始
string input = "abc123efg456!\nefg456";
Regex regex = new Regex(pattern);
var matchCollection = regex.Matches(input);
foreach (Match item in matchCollection)
{
Console.WriteLine(item.Value == " " ? "空白" : item.Value);
}
Console.WriteLine();
regex = new Regex(pattern, RegexOptions.Multiline);//指定多行时多行生效
matchCollection = regex.Matches(input);
foreach (Match item in matchCollection)
{
Console.WriteLine(item.Value == " " ? "空白" : item.Value);
}
Console.WriteLine();
pattern = @"[a-z][1-9]$";//$前面的模式必须位于字符串的末尾
input = "abc123efg6\nefg6";
regex = new Regex(pattern);
matchCollection = regex.Matches(input);
foreach (Match item in matchCollection)
{
Console.WriteLine(item.Value == " " ? "空白" : item.Value);
}
Console.WriteLine();
regex = new Regex(pattern, RegexOptions.Multiline);//$多行也生效
matchCollection = regex.Matches(input);
foreach (Match item in matchCollection)
{
Console.WriteLine(item.Value == " " ? "空白" : item.Value);
}
Console.WriteLine();
pattern = @"\A[a-z]\w";//\A后面的模式必须位于字符串的开始处,而且忽略了多行标志
input = "abc123efg456!\nefg456";
regex = new Regex(pattern);
matchCollection = regex.Matches(input);
foreach (Match item in matchCollection)
{
Console.WriteLine(item.Value == " " ? "空白" : item.Value);
}
Console.WriteLine();
regex = new Regex(pattern, RegexOptions.Multiline);//\A后面的模式必须位于字符串的开始处,而且忽略了多行标志
matchCollection = regex.Matches(input);
foreach (Match item in matchCollection)
{
Console.WriteLine(item.Value == " " ? "空白" : item.Value);
}
Console.WriteLine();
pattern = @"[1-9]\z";//\z前面的模式必须位于字符串的末尾处,而且忽略了多行标志
input = "abc123efg456\nefg456\n";
regex = new Regex(pattern);
matchCollection = regex.Matches(input);
foreach (Match item in matchCollection)
{
Console.WriteLine(item.Value == " " ? "空白" : item.Value);
}
Console.WriteLine();
regex = new Regex(pattern, RegexOptions.Multiline);//\z前面的模式必须位于字符串的末尾处,而且忽略了多行标志
matchCollection = regex.Matches(input);
foreach (Match item in matchCollection)
{
Console.WriteLine(item.Value == " " ? "空白" : item.Value);
}
Console.WriteLine();
pattern = @"[1-9]\Z";//\z前面的模式必须位于字符串的末尾处或者是字符串末尾\n,而且忽略了多行标志
input = "abc123efg456\nefg456\n";
regex = new Regex(pattern);
matchCollection = regex.Matches(input);
foreach (Match item in matchCollection)
{
Console.WriteLine(item.Value == " " ? "空白" : item.Value);
}
Console.WriteLine();
regex = new Regex(pattern, RegexOptions.Multiline);//\z前面的模式必须位于字符串的末尾处或者是字符串末尾\n,而且忽略了多行标志
matchCollection = regex.Matches(input);
foreach (Match item in matchCollection)
{
Console.WriteLine(item.Value == " " ? "空白" : item.Value);
}
Console.WriteLine();
pattern = @"[1-9]\b";//匹配一个单词边界,这个边界就是单词字符和非单词字符的点,单词字符是[a-zA-Z0-9]中的任一字符,本模式指的是数字0到9后面必须是一个非单词
input = "abc123efg456\nefg456\n";
regex = new Regex(pattern);
matchCollection = regex.Matches(input);
foreach (Match item in matchCollection)
{
Console.WriteLine(item.Value == " " ? "空白" : item.Value);
}
Console.WriteLine();
regex = new Regex(pattern, RegexOptions.Multiline);//匹配一个单词边界,这个边界就是单词字符和非单词字符的点,单词字符是[a-zA-Z0-9]中的任一字符,和多行没有关系
matchCollection = regex.Matches(input);
foreach (Match item in matchCollection)
{
Console.WriteLine(item.Value == " " ? "空白" : item.Value);
}
Console.WriteLine();
pattern = @"[1-9]\B";//\B和\b是相反的,所以\B肯定是单词与单词,非单词与非单词之间的点,本模式指的是数字0到9后面必须是一个单词
input = "abc123efg456\nefg456\n";
regex = new Regex(pattern);
matchCollection = regex.Matches(input);
foreach (Match item in matchCollection)
{
Console.WriteLine(item.Value == " " ? "空白" : item.Value);
}
Console.WriteLine();
regex = new Regex(pattern, RegexOptions.Multiline);
matchCollection = regex.Matches(input);
foreach (Match item in matchCollection)
{
Console.WriteLine(item.Value == " " ? "空白" : item.Value);
}
c#正则表达式——指定匹配位置
于 2022-03-25 16:26:40 首次发布