【发布时间】:2019-07-25 06:03:57
【问题描述】:
Ruby /[[:punct:]]/ 应该匹配所有“标点符号”。根据Wikipedia,这意味着/[\]\[!"#$%&'()*+,./:;<=>?@\^_`{|}~-]/ 符合POSIX 标准。
匹配:-[]\;',./!@#%&*()_{}::"?。
但是,它确实不匹配:=`~$^+|<>(至少在 ruby 1.9.3p194 中)。
什么给了?
【问题讨论】:
-
我的 glibc 文档说
[[:punct:]]应该匹配wctype(3)称为标点符号的任何内容;ispunct(3)页面显示checks for any printable character which is not a space or an alphanumeric character.。这似乎很明确。 -
Ruby's RE engine is special, though -- 有关于
punct类的 Unicode 大小写和非 Unicode 大小写的文档。我仍然不确定这具体意味着什么,但我希望这会有所帮助。