簡體   English   中英

使用Ruby中的正則表達式計算字符串內數字和字符的長度

[英]counting length of number and character inside string using regex in ruby

如何在ruby中使用正則表達式計算字符串中數字和字符的長度? 如果我有這種情況,該如何解決? 例如:

abc = "12345678a"

使用正則表達式計數后,我想要得到這樣的結果:

number = 8
char = 1

怎么做?

嘗試跟隨

abc = "12345678a"
abc.scan(/\d/).length
# => 8 
abc.scan(/\D/).length
# => 1 

沒有正則表達式:

abc = "12345678a"
p abc.count("0-9") # => 8
p abc.count("a-zA-Z") # => 1

這是可選的,但我仍然認為正則表達式更好。

irb(main):051:0> number, char = abc.bytes.to_a.partition { |e| e >= 48 and e <= 57}
=> [[49, 50, 51, 52, 53, 54, 55, 56], [97]]
irb(main):053:0> number.count
=> 8
irb(main):054:0> char.count
=> 1

partition:返回兩個數組,第一個包含該塊求值為true的enum元素,第二個包含其余元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM