【发布时间】:2021-09-07 07:13:57
【问题描述】:
我见过multiple solutions 使用正则表达式从字符串中删除非ascii 字符。我想做相反的事情,所以从字符串中删除 ascii 字符,所以我只剩下非 ascii 字符。
例子:
without_ascii "a????" #=> "????"
【问题讨论】:
我见过multiple solutions 使用正则表达式从字符串中删除非ascii 字符。我想做相反的事情,所以从字符串中删除 ascii 字符,所以我只剩下非 ascii 字符。
例子:
without_ascii "a????" #=> "????"
【问题讨论】:
好吧,与你找到的答案相反!
"a?".gsub(/\p{ASCII}/, '') #=> "?"
"a?".delete("\u{0000}-\u{007F}") #=> #=> "?"
请注意,您链接的问题使用了\P,这意味着对于String#gsub,\p 的否定。还有^a-z,这意味着删除从a 到z 的所有字符,而不是String#delete。
【讨论】:
"β".gsub!(/\p{ASCII}/, '') 返回零?而不仅仅是“β”?使用 .delete 效果很好,但我喜欢使用 ascii posix of possible
gsub!'s definition: 在原地执行String#gsub的替换,返回str,如果没有替换则返回nil
"βf".gsub!(/\p{ASCII}/, '') 有效
.delete?