C#中的正则表达式和js中的是否一样?

按照书上写的一个c#中正则表达式的验证:stringp="^[0-9]*$";Regexrx=newRegex(p);returnrx.IsMatch(s);感觉和js中... 按照书上写的一个c#中正则表达式的验证:
string p = "^[0-9]*$";
Regex rx = new Regex(p);
return rx.IsMatch(s);
感觉和js中的正则表达式差不多,但我这本书上并没有对c#的正则表达式的一些详细说明,c#中的正则表达式和js中的使用方法一样吗?
展开
 我来答
百度网友66a8d48e5
推荐于2017-09-30 · TA获得超过7687个赞
知道大有可为答主
回答量:3002
采纳率:12%
帮助的人:3894万
展开全部
正则表达式只是一个系统的概念,然后具体语言再对其实现。

其实两者是不同的。但是由于使用者的习惯,大部分的时间是相同的。

在js中正则表达式是一个类型。可以直接使用var s = /pattern/;这样的形式实现。所以说在js只直接是一种类型的。象用其他诸如字符串等类型一样使用他,只不过定界符不同。

而在C#本身是不存在的,直接使用的是一种类库中的一个类实现的。也就是说正则表达式其实只是类库中的一个类而已。然后对这个类定义有几个静态变量,变量,方法与函数等等,你只要知道他是一个类就可以了!

至于相同的部分那就是大部分的元字符表示法,比如^表示开始,$表示结尾等等,也就是说他们大部分相同的地方就是对于元数据的定义,\d等等,这样你在不同的语言中,虽然实现不同,但对于元数据却使用相同的东西,以便于你的记忆,不必到各种语言中都再去学习了。

不同的是对于表达式的限定及扩展不一样的。在js中你可以直接跟在后面实现,如:
var s = /pattern/igm;
后边的i表示忽略大小写,g表示全局,m表示多行。
但在C#中利用的是另一个参数,regexoptions,枚举型的,除了这些这外还有对编译等等,比js要多。而对于运算符如|选择?等都是一样的!也就是说,js中的写法在C#中一定能用,除模式限制部分,而在C#中的写法大部时间js也能用。

表达式还是要学习的,不是学的元数据表示,而是对于那个类语法的学习,比如在js中存在test方法,就是测试匹配,但不设置变量,而在C#中没有,有一个isMatch与之相同功能。不学习这些东西你怎么会知道呢?所以必须要学习的,而且顺便说一下C#上的正则表达式比js强多了,还有很多的东西是js正则表达式中所没有的,比如动态正则表达式,而在js中是不可能实现的。在C#中却可以实现。如果不学习,那么你的表达式也只能处于常用的基础上!

所以很不暂同一楼的观点。
百度网友bb525a4
2012-04-27 · 超过32用户采纳过TA的回答
知道答主
回答量:130
采纳率:0%
帮助的人:75万
展开全部
正则表达式的规则在所有语言里的使用都相同,这就是正则表达式,只是语法不同而已
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-05-16
展开全部
正则表达式可以说在任何语言里都通用的,共用一个祖先,是一项最伟大的发明
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
草薙在
2012-04-27 · TA获得超过4795个赞
知道大有可为答主
回答量:6187
采纳率:50%
帮助的人:6307万
展开全部
同意 @kusirp21 的说法,具体你可以看看《精通正则表达式 第三版》,里面有详细讲解各种正则表达式引擎的实现区别

简而言之,javascript的正则表达式引擎没有.net提供的强大,.net\java\php都提供特别的功能是别的平台没有的。javascript正则表达式引擎还依赖于浏览器实现,不同的浏览器在底层实现上也不同,性能也不同
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
moonless84
2012-04-27 · TA获得超过174个赞
知道答主
回答量:195
采纳率:0%
帮助的人:155万
展开全部
一样的,所有语言的正则表达式都是一样的
追问
那就是说我没必要重新学习C#的正则表达式了!
追答
都一样,还学什么呀,c#和java几乎相同,相信你要是会java的话,c#很快就能上手。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式