1

可変数の先頭のハイフンを含む文字列があり、文字列の本体にハイフンが含まれている場合と含まれていない場合があります。例えば:

--xxx-xxx

-xxxx

---xxxxxx-xx

Ruby で a) 先頭のハイフンの数を数え、b) 先頭のハイフンを削除した文字列を返すにはどうすればよいですか?

助けてくれて本当にありがとうございます!

4

6 に答える 6

3
>> "--xxx-xxx"[/\A-+/].size
=> 2
>> "--xxx-xxx".sub(/\A-+/, '')
=> "xxx-xxx"

編集: @shime からのコメントにより、String#[]orの他の関連する機能を表示したくなりましたString#slice:

>> "--xxx-xxx"[/\A-+(.+)/, 1]
=> "xxx-xxx" 
于 2012-06-26T10:34:30.940 に答える
0

先頭のハイフンを削除します:

.sub(/^-*/, "")

削除前後の文字列の長さを引いて、先頭のハイフンを数えます。

于 2012-06-26T10:33:31.060 に答える
0

先頭のハイフンを削除するには:

str.sub(/^-+(.+)/, '\1')
于 2012-06-26T10:33:36.157 に答える
0
s = '---xx-x'
new_s = s.gsub(/\A-*/, '')
hyph_num = s.length - new_s.length

gsub は先頭のハイフンを削除します。s と new_s の長さの差は、先頭のハイフンの数に等しくなります。

于 2012-06-26T10:33:53.087 に答える
0
count = 0

"-----xxx---xxx---".each_char do |ch|
  break if ch != '-'
  count = count + 1
end

# => 5


"-----xxx---xxx---".sub(/^-+/, '')
# => "xxx---xxx---"
于 2012-06-26T10:36:22.143 に答える
-1

Ruby 文字列ストリップ定義文字https://stackoverflow.com/a/3166005/284795を読む

次に、裸の紐と元の紐の長さを比較します

于 2012-06-26T10:29:27.627 に答える