【问题标题】:Ruby 1.9 strip not removing whitespaceRuby 1.9 条不删除空格
【发布时间】:2010-10-12 10:57:34
【问题描述】:

我正在做一些屏幕抓取并返回一个似乎以空格结尾的字符串,但 string.strip 或 strip.gsub(/\s/u, '') 都没有删除该字符。

我猜这是字符编码问题。有什么建议吗?

【问题讨论】:

    标签: ruby-1.9


    【解决方案1】:

    我认为,有很多“空格字符”。 你可以使用这样的东西:

    my_string.gsub("\302\240", ' ').strip
    

    【讨论】:

    • my_string.tr("\302\240", ' ').strip 应该快一点
    • 值得注意 -- stackoverflow.com/questions/2588942/… -- “使用/[[:space:]]/ 匹配所有空格,包括Unicode 空格,如不间断空格。这与/\s/ 不同,它只匹配ASCII 空格。”
    【解决方案2】:

    你可以试试这个:my_string.gsub(/\A[[:space:]]+|[[:space:]]+\z/, '')

    这应该删除字符串开头和结尾的所有空格字符,包括所有可能的 unicode 空格变体。

    【讨论】:

      【解决方案3】:

      找出最后一个字符的字符代码(str[-1].ord)并显式搜索并销毁它。如果之后存在更多不需要的字符,请冲洗/重复。完成此操作后,在此处报告隐形字符是什么。 (也许只是因为您使用的字体没有那个字形,所以它是不可见的?)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-10
        • 2016-01-03
        • 2015-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多