JS正则与.net正则表达式的区别

原字符串:长期投资人月井石问华菱钢铁(000932)公司反复强调VAMA的战略意义,请问在2015年4季度达产后对公司贡献的盈利预期

正则匹配处理后:公司反复强调VAMA的战略意义,请问在2015年4季度达产后对公司贡献的盈利预期

也就是说,需要匹配的是:以任意字符(包括中文、字母、数字)开头,然后匹配一个指定的汉字“问”,接着是三到四个汉字,正括号,六个数字,反括号,哦儿了。

对于这样的同一个需求,

.net版写出来是这样的:

string text = Regex.Replace(text2, @"(\w*)问([\u4e00-\u9fa5]{3,4})\(\d{6}\)", "");

JS版写出来是这样的:

return obj.replace(/^[\w\u4e00-\u9fa5]*(问)([\u4e00-\u9fa5]{3,4})\(\d{6}\)/, "");

可以看出,这个案例中,JS和.net最主要的区别在于:

1.JS是以/....../的形式裹住正则表达式,而.net是以@"....."的形式裹住正则表达式。

2.对于匹配任意字符(包括中文、字母、数字),JS需要这样写[\w\u4e00-\u9fa5]*,而.net只需要(\w*)这样,原因是因为JS里的\w只限于字母和数字,并不包含中文,所以需要加上\u4e00-\u9fa5来涵盖所有汉字。

 

未完待续……

 

转载于:https://www.cnblogs.com/mooncher/p/3944419.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值