2个回答
展开全部
\w用于匹配字母,数字或下划线字符。
{n}匹配确定的 n 次。例如,‘o{2}’ 不能匹配 ‘Bob’ 中的 ‘o’,但是能匹配 ‘food’ 中的两个oo。
\b定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一。
比如表达式‘/\bst\b/’可以匹配‘stub’或‘best’,但不能匹配‘industry’。
所以/\b\w{2}\b/可以匹配任意以两个字母,数字或下划线字符为串头或串尾的串,比如'3com','a_b', 'never let'等,但不能匹配‘I hit u’或‘&abc%’
{n}匹配确定的 n 次。例如,‘o{2}’ 不能匹配 ‘Bob’ 中的 ‘o’,但是能匹配 ‘food’ 中的两个oo。
\b定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一。
比如表达式‘/\bst\b/’可以匹配‘stub’或‘best’,但不能匹配‘industry’。
所以/\b\w{2}\b/可以匹配任意以两个字母,数字或下划线字符为串头或串尾的串,比如'3com','a_b', 'never let'等,但不能匹配‘I hit u’或‘&abc%’
展开全部
\b是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格,标点符号或者换行来分隔的,但是\b并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置。
我编写的一个程序是:
string pattern1 = @"\bhi\b.*\bLucy\b";
string str = "hi,fdjkfdjk Lucy fjdk hiLucy";
foreach (Match match in Regex.Matches(str, pattern1, RegexOptions.IgnoreCase))
{
Console.WriteLine(match.Value + ":" + match.Index + ":" + match.Length);
}
Console.ReadLine();
若模式为\bhi\b.*时,若要得到匹配的话,hi后面必须跟空格,标点符号,换行符。这样才能匹配。
如果 要匹配的字符串为hifdjkdjfkd Lucy 这样就匹配不了了。
我编写的一个程序是:
string pattern1 = @"\bhi\b.*\bLucy\b";
string str = "hi,fdjkfdjk Lucy fjdk hiLucy";
foreach (Match match in Regex.Matches(str, pattern1, RegexOptions.IgnoreCase))
{
Console.WriteLine(match.Value + ":" + match.Index + ":" + match.Length);
}
Console.ReadLine();
若模式为\bhi\b.*时,若要得到匹配的话,hi后面必须跟空格,标点符号,换行符。这样才能匹配。
如果 要匹配的字符串为hifdjkdjfkd Lucy 这样就匹配不了了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询