【问题标题】:Add square bracket to the first character of string将方括号添加到字符串的第一个字符
【发布时间】:2013-04-17 18:11:50
【问题描述】:

我需要将第一个字符放在方括号内。例如,我想将"abc" 转换为"[a]bc"。如何使用正则表达式在 ruby​​ 中执行此操作?

【问题讨论】:

  • 我不认为在这里使用正则表达式是一个解决方案,你没有试图匹配任何东西。
  • 还有其他方法吗?

标签: ruby string


【解决方案1】:

使用正则表达式:

"abc".sub(/(.)/, '[\1]')

没有正则表达式:

s = "abc"
s[0] = "[#{s[0]}]"

【讨论】:

  • 第二个的返回值不是被替换的字符串。您需要调用s 才能看到替换后的字符串。
  • 是的,我做到了。我还是会再检查一次。
  • 您使用的是 Ruby 1.8 吗?如果是,则将s[0] 替换为s[0, 1]
  • 是的。现在我正在运行 ruby​​ 1.8.7
  • 您应该认真考虑升级 Ruby。 1.8.7 是五年,1.8 是十年。 “在 2013 年 6 月之后,我们将不再全面支持 1.8.7”。 ruby-lang.org/en/news/2011/10/06/plans-for-1-8-7 以下适用于 1.9+ 版本的 Ruby。如果它每秒只有一次,那么我想不出一个行不通的解决方案。一个天真的s = "[" + s[0] + "]" + s[1..-1] 会做。将+ 更改为<< 甚至可能使其表现良好。
【解决方案2】:

试试这个:

s = "abc"
p "abc".insert(1, ']').prepend('[') #=> "[a]bc"  

【讨论】:

    猜你喜欢
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 2020-04-13
    • 1970-01-01
    • 2016-12-30
    相关资源
    最近更新 更多