如何使用regexp在ruby中從句子字符串(如「Lorem 123 ipsum 456 879」=>「123456879」)獲取所有數字?如何從字符串正則表達式中獲取所有數字ruby
19
A
回答
43
只需更換一切。
result = subject.gsub(/[^\d]/, '')
4
"Lorem 123 ipsum 456 879".scan(/\d+/).join # => "123456879"
6
參考this
result = subject.gsub(/\D/, '')
1
已經給出了一些正確的答案,這可能包括你要使用的東西。一個稍微低層次方式:
"Lorem 123 ipsum 456 879".chars.select {|c| c =~ /\d/}.join
7
沒有正則表達式:
"Lorem 123 ipsum 456 879".delete('^0-9') #=>"123456879"
0
我總是用括號東西認爲是更容易閱讀
"nwa240".chars.select {|s| s =~ /[0-9]/}
4
版本從@steenslag是最快,thx!
require 'benchmark'
class ExtractInt
def self.v1(string)
string.gsub(/[^\d]/, '')
end
def self.v2(string)
string.gsub(/\D/, '')
end
def self.v3(string)
string.delete('^0-9')
end
def self.run(m, arg)
10000.times do
self.send(m, arg)
end
end
end
Benchmark.bmbm do |x|
x.report('v1') { ExtractInt.run(:v1, 'AAAA4000') }
x.report('v2') { ExtractInt.run(:v2, 'AAAA4000') }
x.report('v3') { ExtractInt.run(:v3, 'AAAA4000') }
end
# Rehearsal --------------------------------------
# v1 0.040000 0.000000 0.040000 ( 0.041564)
# v2 0.040000 0.000000 0.040000 ( 0.042386)
# v3 0.010000 0.000000 0.010000 ( 0.011604)
# ----------------------------- total: 0.090000sec
# user system total real
# v1 0.040000 0.000000 0.040000 ( 0.042176)
# v2 0.040000 0.000000 0.040000 ( 0.043753)
# v3 0.010000 0.000000 0.010000 ( 0.012960)
相關問題
- 1. 在Ruby中從正則表達式獲取字符串
- 2. 正則表達式從一個字符串中獲取數字
- 3. 從字符串中獲取數字與正則表達式
- 4. 正則表達式獲取字符串中的所有號碼?
- 5. 正則表達式 - 獲取字符串
- 6. 如何用正則表達式從HTML中獲取字符串?
- 7. PHP正則表達式 - 從字符串獲取數字
- 8. 正則表達式 - 獲取所有字符串之間的字符串Betwen?
- 9. 正則表達式從字符串中獲取數據
- 10. 正則表達式從字符串中獲取數組編號
- 11. 如何從字符串中提取數據正則表達式
- 12. 正則表達式從字符串中提取子字符串
- 13. 正則表達式:找到字符串中的所有數字
- 14. 如何用正則表達式從字符串中獲取數字
- 15. 如何使用正則表達式從字符串中獲取數字?
- 16. 如何使用正則表達式從字符串獲取id
- 17. 獲取所有不匹配的字符從正則表達式
- 18. 從正則表達式的字符串中提取數字
- 19. 正則表達式從字符串中提取數字
- 20. 從字符串的正則表達式中提取數字
- 21. 如何查找字符串中的所有正則表達式?
- 22. JavaScript正則表達式從字符串中獲取所有電子郵件
- 23. 正則表達式從字符串獲取整數
- 24. 從大字符串提取字符串oracle正則表達式
- 25. 正則表達式選擇字符串後的所有數字
- 26. c#正則表達式字符串中只有數字字符
- 27. 獲取字符串後的數字php正則表達式
- 28. 獲取字符串和數字用正則表達式
- 29. 使用正則表達式從字符串中獲取子字符串
- 30. 使用正則表達式從此字符串獲取字符串模式
您也可以使用\ d爲[^ \ d] ...> 「的Lorem ipsum的123 456 879」 .gsub(/ \ d /, '') => 「123456879」 – oylenshpeegul