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

浏览:65日期:2022-10-21

问题描述

就是多行带注释的。

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

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

LiveScript——用//代替/

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

还有哪些?

问题解答

回答1:

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

大众语言,如,PHP有:http://php.net/manual/en/reference.pcre.pattern.modifiers.phpPython也支持: http://docs.python.org/2/library/re.html#re.VERBOSEJavaScript默认不行,因为它的不是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++中多行字符串的写法比较不自然。

回答2:

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

回答3:

CoffeeScipt也支持。

///d{4}-? # 年d{1,2}-? # 月d{1, 2} # 日///回答4:

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

回答5:

c和c++不支持

相关文章: