IOWs,\ w字符类的否定形式。我是否应该期待我使用正则表达式的不同语言的不同行为?
答案 0 :(得分:1)
当然\W
包括\r
和\n
。
\W
是对\w
的否定,\w
包含字母,数字和连接标点字符(如下划线)。
现在有三种可能性:
\w
基于ASCII ==> [a-zA-Z0-9_]
\w
基于Unicode ==>类似于[\p{L}\p{Nd}\p{Pc}]
的字母,来自所有语言的数字以及更多类似于下划线的字符See Unicode on regular-expressions.info
该风味允许您使用修饰符切换\w
的行为。
但由于换行符从未包含在\w
中,因此\W
答案 1 :(得分:0)
\ w是[a-zA-Z0-9_]
的简写,因此它只匹配a-z(下部和上部),数字和下划线。否定的\ w是\ W将匹配除\ w
再次阅读here。
基本上有两种类型的正则表达式,POSIX和Perl。理论上posix正则表达式应该独立于编程语言,但有一些已知的例外。请参阅此主题以了解Java和.NET之间的差异(理论上相同的posix,几乎不相同) Are Java and C# regular expressions compatible?