当前位置:  开发笔记 > 编程语言 > 正文

如果字符以字符开头,则从字符串中删除字符?

如何解决《如果字符以字符开头,则从字符串中删除字符?》经验,为你挑选了3个好方法。

如果该字符串以"1"开头,如何从任何字符串中删除第一个"1"?

"1hello world" => "hello world"
"112345" => "12345"

我正在考虑做

string.sub!('1', '') if string =~ /^1/

但我想知道有更好的方法.谢谢!



1> Zach Langley..:

为什么不在sub!方法中包含正则表达式?

string.sub!(/^1/, '')



2> SRack..:

从Ruby 2.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

我在这里回答了一些细节(带基准):从字符串中删除第一个字符的最简单方法是什么?



3> Gordon Wilso..:

如果您打算使用正则表达式进行匹配,您也可以将其用于替换

string.sub!(%r{^1},"")

顺便说一句,这%r{}只是正则表达式的替代语法.您可以使用%r,后跟任何字符,例如%r!^1!.

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有