【问题标题】:Regex to remove ascii characters from string正则表达式从字符串中删除 ascii 字符
【发布时间】:2021-09-07 07:13:57
【问题描述】:

我见过multiple solutions 使用正则表达式从字符串中删除非ascii 字符。我想做相反的事情,所以从字符串中删除 ascii 字符,所以我只剩下非 ascii 字符。

例子:

without_ascii "a????" #=> "????"

【问题讨论】:

    标签: regex ruby


    【解决方案1】:

    好吧,与你找到的答案相反!

    "a?".gsub(/\p{ASCII}/, '') #=> "?"
    "a?".delete("\u{0000}-\u{007F}") #=> #=> "?"
    

    请注意,您链接的问题使用了\P,这意味着对于String#gsub\p 的否定。还有^a-z,这意味着删除从az 的所有字符,而不是String#delete

    【讨论】:

    • 谢谢@Ulysse BN。为什么"β".gsub!(/\p{ASCII}/, '') 返回零?而不仅仅是“β”?使用 .delete 效果很好,但我喜欢使用 ascii posix of possible
    • @jgozal because of gsub!'s definition: 在原地执行String#gsub的替换,返回str,如果没有替换则返回nil
    • 但是“β”不是ASCII,对吗?它不应该找到什么吗?
    • 对不起,我现在明白了。对"βf".gsub!(/\p{ASCII}/, '') 有效
    • 是否可以在 ascii posix 中使用.delete
    猜你喜欢
    • 1970-01-01
    • 2021-01-17
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 2022-06-28
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    相关资源
    最近更新 更多