ruby - 文本解析问题,字符看起来像更长的 'hyphen' 并且有 3 个 ASCII 值

标签 ruby regex unicode ascii text-parsing

这里是恶魔角色-;检查它我得到了 3 个 ASCII 值:

ASCII code 226 128 147

现在我想知道如何在我的正则表达式中使用这个字符。

最佳答案

这些都不是 ASCII 值,因为 ASCII 范围是 0 到 127,没有更高的。 UTF-8 中的代码点 U+2010 HYPHEN 是用您在此处列出的三个字节值编写的,如以下所示:

$ perl -CS -e 'print "\x{2010}"' | perl -C0 -ne 'printf "%vd\n",$_'
226.128.144

您可以使用 the uniprops script 获取该代码点的名称和字符属性:

$ uniprops U+2010
U+2010 ‹‐› \N{ HYPHEN }:
    \pP \p{Pd}
    All Any Assigned InGeneralPunctuation Common Zyyy Dash Dash_Punctuation Pd P General_Punctuation Gr_Base Grapheme_Base Graph GrBase Hyphen Punct Pat_Syn Pattern_Syntax PatSyn Print Punctuation

具有 Unicode Dash 属性的其他常见代码点包括 the unichars script 所示的代码点:

 $ unichars '\p{Dash}'
 -    45 002D HYPHEN-MINUS
 ‐  8208 2010 HYPHEN
 ‑  8209 2011 NON-BREAKING HYPHEN
 ‒  8210 2012 FIGURE DASH
 –  8211 2013 EN DASH
 —  8212 2014 EM DASH
 ―  8213 2015 HORIZONTAL BAR
 ⁓  8275 2053 SWUNG DASH
 ⁻  8315 207B SUPERSCRIPT MINUS
 ₋  8331 208B SUBSCRIPT MINUS
 −  8722 2212 MINUS SIGN

关于ruby - 文本解析问题,字符看起来像更长的 'hyphen' 并且有 3 个 ASCII 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4912036/

相关文章:

string - 判断字符串中的特定字符是长字符还是短字符

ruby-on-rails - rspec-mocks 'allow' 返回未定义的方法

ruby-on-rails - 生产服务器上的 Sunspot/Solr

ruby-on-rails - Rails Collection_Select Has_Many 通过

java - 一个奇怪的常客

python - 当已知字符串中出现的次数为 N 时,查找字符串中重复出现的术语

php - PHP根据列条件处理MySQL查询

ruby-on-rails - 如何使按钮在 erb 中充当链接?

python - 如何根据列中字符串的长度有条件地从 PySpark Dataframe StringType() 列中删除字符子串?

jpa - 在 Oracle 11g 中使用 JPA 存储 unicode 字符