【问题标题】:How do I trim " " characters from text?如何从文本中修剪“ ”字符?
【发布时间】:2013-11-12 10:29:42
【问题描述】:

我正在抓取网页并将页面中的数据插入 MySQL。我插入的文本包含:

  my text
  89

由于这个类似空格的字符,我的文本和整数数据没有正确插入 MySQL。如何从变量中修剪此字符,例如 mydata

【问题讨论】:

  • 对于未来,请记住这一点:“要求代码的问题必须证明对正在解决的问题有最低限度的了解。包括尝试的解决方案、它们为什么不起作用以及预期的结果。请参阅还有:Stack Overflow question checklist"

标签: mysql ruby trim


【解决方案1】:

如果你只需要修剪字符串的开头,你可以简单地使用sub

"  my text".sub(/^( |\s)+/, '')
 => "my text"

如果您需要剥去两端,试试这个:

"  my text        ".sub(/^( |\s)*(.*?)( |\s)*$/, '\2')
=> "my text"

或者:

"  my text        ".gsub(" ", "").strip
 => "my text"

【讨论】:

  • 正如我在 ruby​​ 中对上述答案的评论中提到的,这个多字节字符显示为 whitespace 而不是   所以 .gsub(" ", "") 也不起作用,也用该多字节字符替换会给出语法错误。
  • 您使用哪个版本的 Ruby?如果是 1.9.3,请尝试在文件开头添加:# encoding: UTF-8 如果您需要更多帮助,我们需要查看更多您的代码。
  • 它的红宝石 1.9.3p448 (2013-06-27) [i386-mingw32]。它是一个冗长的代码,您需要变量、源页面报废或 mysql 查询的哪一部分?
  • 您是否尝试过先添加编码?可能问题出在您的抓取中。
  • 只需在文件开头添加:#encoding: UTF-8
【解决方案2】:

我为这个问题找到的最简单的方法

str.gsub(/[[:space:]]/, '')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 2010-09-16
    • 2010-10-20
    • 2013-08-24
    相关资源
    最近更新 更多