如果字符串以"1“开头,我如何从该字符串中删除第一个"1"?
"1hello world" => "hello world"
"112345" => "12345"
我在考虑做什么
string.sub!('1', '') if string =~ /^1/
但我在想有没有更好的方法。谢谢!
发布于 2008-12-16 02:41:01
为什么不在sub!
方法中包含正则表达式呢?
string.sub!(/^1/, '')
发布于 2017-10-27 21:36:42
从Ruby2.5开始,你可以使用delete_prefix或delete_prefix!以一种可读的方式实现这一点。
在本例中为"1hello world".delete_prefix("1")
。
更多信息请点击此处:
https://blog.jetbrains.com/ruby/2017/10/10-new-features-in-ruby-2-5/
https://bugs.ruby-lang.org/issues/12694
'invisible'.delete_prefix('in') #=> "visible"
'pink'.delete_prefix('in') #=> "pink"
注意:你也可以用delete_suffix和delete_suffix来删除字符串末尾的项目。
'worked'.delete_suffix('ed') #=> "work"
'medical'.delete_suffix('ed') #=> "medical"
https://bugs.ruby-lang.org/issues/13665
我在这里更详细地回答了(使用基准测试):What is the easiest way to remove the first character from a string?
发布于 2008-12-16 02:42:08
如果您打算使用正则表达式进行匹配,那么您也可以将其用于替换
string.sub!(%r{^1},"")
顺便说一句,%r{}
只是正则表达式的替代语法。您可以使用%r后跟任何字符,例如%r!^1!
。
https://stackoverflow.com/questions/370322
复制相似问题