正则表达式之IsMatch和Match区别

问题描述

1.stringregex=@"^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$";!Regex.IsMatch("laszlo-@hotmail.com",regex)2.varr=newRegex(@"^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$");!r.Match("laszlo-@hotmail.com").Success请问各位大神,第一种和第二种的结果一样吗?这两种方法有什么区别呢?

解决方案

本帖最后由 SallyAngela 于 2015-06-09 14:43:29 编辑
解决方案二:
一样不一样自己试验一下不就得了怕爆炸吗
解决方案三:
IsMatch只返回bool值,代表匹配成功与否Match返回匹配到的第一个值,如果匹配成功,则可以通过m.Value之类的获取匹配到的字符串或者Group字符串,如果你仅仅是要判断匹配成功与否,那简单点还是IsMatch就可以了
解决方案四:
试过了,其他邮箱地址用这两种方法都可以通过匹配但是laszlo-@hotmail.com这个地址就不行,只有第二种方法通过匹配
解决方案五:
按理说laszlo-@hotmail.com这个地址应该是都可以匹配成功的可是在C#中尝试验证,只有r.Match("laszlo-@hotmail.com").Success是通过Regex.IsMatch("laszlo-@hotmail.com",regex)不通过
解决方案六:
那你就问他俩为什么不一样就行了,不要出个自己知道答案的题考别人
解决方案七:
@"^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$"@"^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$"这两个正则表达式根本都不一样,凭啥要都能匹配成功?
解决方案八:
如果你仅仅是测试这俩函数到底有啥区别你应该把正则表达式放进string类型的变量里传递进去确保传递的是同样的表达式表达式都不一样,你是在测啥呢
解决方案九:
看错了,对不起各位了,两个正则不一样我只是想问下这种方法为什么匹配不成功呢?@之前是允许有-符号的stringregex=@"^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$";Regex.IsMatch("laszlo-@hotmail.com",regex)这是验证邮箱地址
解决方案十:
@"^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$"@"^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$"帮忙解释下这两种正则表达式是不是都可以验证邮箱呢?
解决方案十一:
想知道俩正则表达式是否都能匹配那么就用其中一个函数去分别执行2个表达式看结果呗.是非问题,其实很容易能知道.至于为什么,那就需要去学习正则表达式里每一项的含义
解决方案十二:
"laszlo-@hotmail.com"不符合"^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$"的规则规则w+([-+.]w+)*中-只能出现在字母数字的中间,而laszlo-中的-出现在最后[-+.]w+改为[-+.w]+就可以了当然含义也就大变了([-+.]w+)*的实际含义是:如果有-+.三个字符之一出现,那么后面就至少有一个字母数字或下划线

时间: 2024-07-31 04:13:02

正则表达式之IsMatch和Match区别的相关文章

js正则表达式中test,exec,match方法的区别介绍

 本篇文章主要是对js正则表达式中test,exec,match方法的区别进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 js正则表达式中test,exec,match方法的区别说明   test  test 返回 Boolean,查找对应的字符串中是否存在模式. var str = "1a1b1c"; var reg = new RegExp("1.", ""); alert(reg.test(str)); // true     e

js正则表达式中test,exec,match方法的区别说明_javascript技巧

js正则表达式中test,exec,match方法的区别说明 test test 返回 Boolean,查找对应的字符串中是否存在模式.var str = "1a1b1c";var reg = new RegExp("1.", "");alert(reg.test(str)); // true exec exec 查找并返回当前的匹配结果,并以数组的形式返回.var str = "1a1b1c";var reg = new R

python正则表达式match和search用法实例

 这篇文章主要介绍了python正则表达式match和search用法,实例分析了正则表达式中match和search的功能.定义及相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了python正则表达式match和search用法.分享给大家供大家参考.具体分析如下: python提供了2中主要的正则表达式操作:re.match 和 re.search. match :只从字符串的开始与正则表达式匹配,匹配成功返回matchobject,否则返回none: sea

python正则表达式match和search用法实例_python

本文实例讲述了python正则表达式match和search用法.分享给大家供大家参考.具体分析如下: python提供了2中主要的正则表达式操作:re.match 和 re.search. match :只从字符串的开始与正则表达式匹配,匹配成功返回matchobject,否则返回none: search :将字符串的所有字串尝试与正则表达式匹配,如果所有的字串都没有匹配成功,返回none,否则返回matchobject:(re.search相当于perl中的默认行为) import re d

python re.search 和 re.match 正则表达式 (1/2)

python re.search 和 re.match 正则表达式 一 re.search 和 re.match python提供了2中主要的正则表达式操作:re.match 和 re.search. match :只从字符串的开始与正则表达式匹配,匹配成功返回matchobject,否则返回none: search :将字符串的所有字串尝试与正则表达式匹配,如果所有的字串都没有匹配成功,返回none,否则返回matchobject:(re.search相当于perl中的默认行为)   实例代码

.NET 中的正则表达式

前两天面试一个程序员,自己说工作中用到过正则表达式,也比较熟悉,问他要使用正则表达式需要引用那个命名空间,使用哪些类,居然吱吱唔唔答不上来,让他写一个验证电话号码的正则表达式也写不出来,实在是很奇怪这种程序员是怎么工作了两三年的. 言归正传,下面介绍下.net中正则表达式中的使用. 要在.net中使用正则表达式,需要引用System.Text.RegularExpressions 命名空间.新建一个正则表达式类: string pattern = "some_pattern"; //正

python3爬虫之入门基础和正则表达式_正则表达式

前面的python3入门系列基本上也对python入了门,从这章起就开始介绍下python的爬虫教程,拿出来给大家分享:爬虫说的简单,就是去抓取网路的数据进行分析处理:这章主要入门,了解几个爬虫的小测试,以及对爬虫用到的工具介绍,比如集合,队列,正则表达式: 用python抓取指定页面: 代码如下: import urllib.request url= "http://www.baidu.com" data = urllib.request.urlopen(url).read()# d

asp.net一些常用字符串操作正则表达式

1.拆分字符串 1.1 以下例举一个拆分句子的demo:  代码如下 复制代码 using System; using System.Text.RegularExpressions; namespace RegexSplit { class Program { public static void Main(string[] args) { Console.WriteLine("请输入要分拆的字符串,并按Enter键确认."); string input=Console.ReadLin

ASP.NET使用正则表达式屏蔽垃圾信息_实用技巧

Regex 类 表示不可变的正则表达式. 命名空间:System.Text.RegularExpressions Regex 类包含若干 static(在 Visual Basic 中为 Shared)方法,使您无需显式创建 Regex 对象即可使用正 则表达式.在 .NET Framework 2.0 版中,将缓存通过调用静态方法而编译的正则表达式,而不会缓存通过调 用实例方法而编译的正则表达式.默认情况下,正则表达式引擎将缓存 15 个最近使用的静态正则表达式.因 此,在过度地依赖一组固定的