Sembolden büyük olan nokta, noktalama kategorisi değil "Symbol, Math" category. Eğer
2.1.2 :004 > /[[:punct:]]/u =~ '<'
=> nil
2.1.2 :005 > /[[:punct:]]/ =~ '<'
=> 0
: (varsayılan kaynak başka bir şey ise, kaynak kodlaması için bu varsayılan ve tahminen kaynak, UTF-8 kodlu olduğu) UTF-8'e Regex kodlamasını zorlamak durumunda bu görebilirsiniz ASCII kodlamaya (/ n - daha fazla seçenek here) karşı regex'i zorlarsınız, '<' kategorisini kategorize eder. Ancak, kaynağınız UTF-8'in ASCII alt kümesinin dışındaki karakterleri içeriyorsa, bu sorunlara neden olabilir.
2.1.2 :012 > /\p{S}/u =~ '<'
=> 0
var:
2.1.2 :009 > /[[:punct:]]/n =~ '<'
=> 0
Daha iyi bir çözüm UTF-8 kodlamasında '<' maçları hangi bir 'punct' yerine yerine regex 'Sembol' kategorisini kullanmak olacaktır here kategorilerinin daha uzun bir listesi.
Glibc belgelerim, '[[: punct:]]' 'wctype (3) '' nin noktalama işareti olarak adlandırdığı herşeyle eşleşmesi gerektiğini; 'ispunct (3)' sayfası, boşluk veya alfasayısal karakter olmayan yazdırılabilir karakterleri kontrol eder. Bu oldukça açık görünüyor. – sarnold
[Ruby'nin RE motoru özel olsa da] (http://www.geocities.jp/kosako3/oniguruma/doc/RE.txt) - hem Unicode-case hem de Unicode-case için belgeler var. punct' sınıfı. Bunun ne anlama geldiğini hala bilmiyorum ama umarım bu yardımcı olur. – sarnold