(\w)\1{4,} 与 (\w){4,}\1 的区别是什么?
例如我匹配aa bbbb abcdefg ccccc 111121111 999999999
当用第一个表达式的时候的结果是: ccccc 999999999
当用第二个表达式的时候结果是:ccccc 111121111 999999999
真的不怎么明白,请教大家能否解析下?
例如我匹配aa bbbb abcdefg ccccc 111121111 999999999
当用第一个表达式的时候的结果是: ccccc 999999999
当用第二个表达式的时候结果是:ccccc 111121111 999999999
真的不怎么明白,请教大家能否解析下?
解决方案 »
- 请介绍C#入门的书,谢谢!
- ado连接数据库
- 问一个关于float类型精度的问题
- 以下代码是声明一个函数吗
- VS2003创建的项目。后来升迁到2005,
- 如何加速从StringBuilder实例中提取字符串的速度?
- winForm里自定义控件间的赋值问题(高手进)
- 请教 简单的 C# 操作XML文件 问题。。。!!!!!!!!!!!!!!!!!!!!!
- 小分问一下关于C#中大量使用try catch对系统性能问题!
- 各位朋友:关于App_Code的问题
- c#如何实现点击button实现打开一个webbrower并且webbrower中的url等于当前窗体的某个textbox值
- 时间比较大小问题!
第一条表达式可以写成这样:(\w)(\w){4,}
第二条表达式则写成这样(\w){4,}(\w)
当然,条件就是在第一个(\w)匹配结束后第二个(\w)必须跟第一个(\w)所匹配的内容一样
5楼正解可以用这段代码去试using System;
using System.Text;
using System.Text.RegularExpressions;public class Program
{
//public const string EmailRegularExpression = @"(^\<(\s)*.+([-+.].+)*@.+([-.].+)*(\s)*\>\z)|"
// + @"(^(\s)*.+(.|\s)+\<(\s)*.+([-+.].+)*@.+([-.].+)*(\s)*\>\z)|"
// + @"(^\w+([-+.]\w+)*@\w+([-.]\w+)*$)";
public const string EmailRegularExpression = @"^(\w){4,}\1";
public static void Main()
{
string testString = string.Empty;
while (true)
{
testString = Console.ReadLine();
if (testString != null && testString.Equals("exit"))
{
break;
}
if (!Regex.IsMatch(testString, EmailRegularExpression))
{
Console.WriteLine("Wrong...");
}
else
{
Console.WriteLine("Right...");
}
}
}
}