计算和删除前导字符

时间:2012-06-26 10:28:06

标签: ruby regex

我的字符串包含可变数量的前导连字符,并且字符串正文中可能包含或不包含连字符。例如:

- XXX-XXX

-xxxx

--- XXXXXX-XX

我如何在Ruby a中)计算前导连字符的数量?b)返回删除了前导连字符的字符串?

非常感谢你的帮助!

6 个答案:

答案 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 charactershttps://stackoverflow.com/a/3166005/284795

然后比较裸字符串和原始字符串的长度