TA的每日心情 | 擦汗 2020-7-3 13:51 |
---|
签到天数: 19 天 [LV.4]偶尔看看III
|
本帖最后由 starmars 于 2021-4-1 02:10 编辑 : ?0 ~3 ~: J5 c0 W
}8 ?# i$ ^8 |2 L0 Shttp://regexhero.net/
9 m9 y1 u( G2 T# l! {8 J
! ~! c( s i+ i$ ~/ P$ B既可以在线测试也可以下载软件线下自己测试。更重要的是,它用的是.NET的C#正则库制作的,可以说这个世界上最强大的正则实现库是微软的.NET,其他语言的实现,JavaScript,Python,Perl,Ruby,Java,PHP统统没有C#的强大。( U# k# A) t T3 @
2 D: n5 G. R2 L随便举一个例子,JavaScript不支持逆序环视(零宽度断言),其他语言虽支持逆序环视,但对逆序环视中的表达式能匹配的文本长度有限制:Python只支持匹配固定长度文本的表达式,而Java和PHP只支持匹配有限长度文本的表达式,而伟大的.NET则无任何限制! 一个正则表达式在号称所谓“强大”的编辑器EmEditor中可能报错因为它不认识,到了Regex Hero里就成了合法的正则表达式了!
# m, `7 \2 U9 z5 M: S
5 a q/ c9 i( q! T; Q8 k" J- c7 a' E* z: H; m3 N( v
再举一例:小括号括起来的分组如果后面有* +这种量词,如果这个分组匹配上了很多次,只有.NET可以将这一个分组所有这些匹配全部轻易捕获到,而且他语言可能只能引用最后一个。
0 R4 |7 s. G7 _- s* ]1 C$ `& v
$ ?$ e7 Z$ j/ j: l& O! v再来最后一个:\b 匹配单词的边界,JavaScript,Python 2,Perl,Ruby,Java,PHP 可能只适用英文单词,而.NET还可以匹配中文字符边界! |
|