问题描述
就是多行带注释的。
我知道的有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++不支持

