我的字符串包含可变数量的前导连字符,并且字符串正文中可能包含或不包含连字符。例如:
- XXX-XXX
-xxxx
--- XXXXXX-XX
我如何在Ruby a中)计算前导连字符的数量?b)返回删除了前导连字符的字符串?
非常感谢你的帮助!
答案 0 :(得分:3)
>> "--xxx-xxx"[/\A-+/].size
=> 2
>> "--xxx-xxx".sub(/\A-+/, '')
=> "xxx-xxx"
编辑:来自@shime的评论让我想要展示String#[]
或String#slice
的其他相关功能:
>> "--xxx-xxx"[/\A-+(.+)/, 1]
=> "xxx-xxx"
答案 1 :(得分:0)
删除前导连字符:
.sub(/^-*/, "")
通过减去删除前后字符串的长度来计算前导连字符。
答案 2 :(得分:0)
删除前导连字符:
str.sub(/^-+(.+)/, '\1')
答案 3 :(得分:0)
s = '---xx-x'
new_s = s.gsub(/\A-*/, '')
hyph_num = s.length - new_s.length
gsub删除主要连字符。并且s和new_s长度之间的差异等于前导连字符的数量。
答案 4 :(得分:0)
count = 0
"-----xxx---xxx---".each_char do |ch|
break if ch != '-'
count = count + 1
end
# => 5
"-----xxx---xxx---".sub(/^-+/, '')
# => "xxx---xxx---"
答案 5 :(得分:-1)
阅读Ruby string strip defined characters和https://stackoverflow.com/a/3166005/284795
然后比较裸字符串和原始字符串的长度