zoukankan      html  css  js  c++  java
  • 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(/^[wu4e00-u9fa5]*(问)([u4e00-u9fa5]{3,4})(d{6})/, "");

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

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

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

    未完待续……

  • 相关阅读:
    对生产稳定的一些思考
    tsar指标解释
    tsar采集nginx指标
    Nginx如何处理一个连接
    Java : 如何更优雅的设计异常
    MySql的索引实现
    IntelliJ Idea 常用配置
    ICSharpCode.SharpZipLib.dll 压缩、解压Zip文件 附源码
    Java BigDecimal使用
    社交系统中用户好友关系数据库设计
  • 原文地址:https://www.cnblogs.com/mooncher/p/3944419.html
Copyright © 2011-2022 走看看