首页  >  问答  >  正文

ruby - 哪些语言支持扩展正则的?

就是多行带注释的。

我知道的有Ruby——需要加x选项

/\d{4}-? # 年
\d{1,2}-? # 月
\d{1, 2} # 日
/x

LiveScript——用//代替/

//
\d{4}-? # 年
\d{1,2}-? # 月
\d{1, 2} # 日
//

还有哪些?

大家讲道理大家讲道理2762 天前650

全部回复(5)我来回复

  • 大家讲道理

    大家讲道理2017-04-21 11:21:17

    这个是PCRE_EXTRA Modifier: PASSING MODIFIERS TO THE REGULAR EXPRESSION ENGINE
    通常是添加X Modifier/Option/Compilation Flag
    PCRE系列的实现应该都支持这功能。所以只需要看看该语言是否有PCRE的库就行了,或者看它的Regex 实现是否支持X Option。

    大众语言,如,
    PHP有:http://php.net/manual/en/reference.pcre.pattern.modifiers.php
    Python也支持: http://docs.python.org/2/library/re.html#re.VERBOSE
    JavaScript默认不行,因为它的不是PCRE,需要XRegExp扩展:http://www.xregexp.com/
    Java和C#都有:
    - Java Pattern.COMMENTS
    - C# X RegExp Option

    Java、C#有的,Groovy之类的JVM或.Net系列自然也都有吧。

    对了,这个严格来讲不是语言语法层面的东西,只不过Ruby或JS这样的支持RegExp字面量罢了,所以这个意义上来讲不区分语言,只不过C/C++中多行字符串的写法比较不自然。

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-21 11:21:17

    脚本语言都支持 扩展pcre即可

    回复
    0
  • PHPz

    PHPz2017-04-21 11:21:17

    CoffeeScipt也支持。

    ///
    \d{4}-? # 年
    \d{1,2}-? # 月
    \d{1, 2} # 日
    ///
    

    回复
    0
  • PHP中文网

    PHP中文网2017-04-21 11:21:17

    nark 正则引擎支持交集、差集操作,还支持多正则匹配:一遍扫描就知道匹配了一堆(可能几百万个)正则表达式中的哪些。

    回复
    0
  • PHPz

    PHPz2017-04-21 11:21:17

    c和c++不支持

    回复
    0
  • 取消回复