Làm thế nào để lấy tất cả các chữ số từ một chuỗi câu như "Lorem 123 ipsum 456 879" => "123456879" bằng cách sử dụng regexp trong ruby?Làm cách nào để lấy tất cả các chữ số từ chuỗi regexp ruby
19
A
Trả lời
43
Chỉ cần thay thế mọi thứ khác.
result = subject.gsub(/[^\d]/, '')
4
"Lorem 123 ipsum 456 879".scan(/\d+/).join # => "123456879"
6
Ref this
result = subject.gsub(/\D/, '')
1
Một số câu trả lời đúng đã được đưa ra, trong đó có thể bao gồm những gì bạn muốn sử dụng. Một hơi hơn ở mức độ thấp cách:
"Lorem 123 ipsum 456 879".chars.select {|c| c =~ /\d/}.join
7
Nếu không có regex:
"Lorem 123 ipsum 456 879".delete('^0-9') #=>"123456879"
0
Tôi luôn luôn nghĩ rằng bằng cách sử dụng điều ngoặc là dễ dàng hơn để đọc
"nwa240".chars.select {|s| s =~ /[0-9]/}
4
Các phiên bản từ @steenslag là nhanh nhất, 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)
Các vấn đề liên quan
- 1. Cách xóa tất cả các ký tự khỏi chuỗi ngoại trừ số, "," và "." sử dụng Ruby?
- 2. Có cách nào để lấy tất cả các biến trong Ruby không?
- 3. làm thế nào để làm cho tất cả các chữ cái trong thủ đô chuỗi?
- 4. JS regex: thay thế tất cả các chữ số trong chuỗi
- 5. Làm thế nào để loại bỏ tất cả các số không bắt đầu từ chuỗi?
- 6. Làm thế nào để tìm tất cả các chu kỳ của một chuỗi trong Ruby?
- 7. Xóa tất cả các ký tự không phải chữ cái, không phải chữ số từ một chuỗi?
- 8. Ruby - Cách kiểm tra xem chuỗi có chứa tất cả các từ trong một mảng không?
- 9. Cách để lấy tất cả các ký tự chữ cái trong một mảng trong PHP?
- 10. Làm thế nào để bạn loại bỏ tất cả các ký tự chữ cái từ một chuỗi?
- 11. Cách lấy Regexp từ EXSLT làm việc trong libxslt?
- 12. Làm cách nào để xóa tất cả các ký tự khỏi chuỗi
- 13. Làm thế nào để loại bỏ tất cả các ký tự không phải chữ và số từ một chuỗi ngoại trừ dấu chấm và dấu cách trong excel?
- 14. Xóa tất cả các ký tự không phải chữ và số bằng cách sử dụng preg_replace
- 15. Làm thế nào để lấy tất cả các bản ghi Từ CoreData Base bằng NSManagedObjectSubClass?
- 16. Lấy các số cụ thể từ chuỗi
- 17. Tạo mảng của tất cả các chữ cái và chữ số
- 18. Tìm và in các dòng trong một tệp chính xác khớp chuỗi hoặc regexp (Ruby)
- 19. Làm cách nào để lấy đối tượng lớp từ chuỗi "A :: B :: C" trong Ruby?
- 20. Có cách nào để lấy tất cả các tệp từ một đốm màu xanh da trời
- 21. Làm thế nào để pad tất cả các số trong một chuỗi
- 22. Có cách nào để lấy tất cả các khóa từ một giá trị trong một bội số không?
- 23. Chuyển đổi đệ quy tất cả chuỗi số thành số nguyên trong mã băm Ruby
- 24. làm thế nào để thay thế tất cả các chữ hoa với khoảng cách?
- 25. Làm cách nào để đổi tên tất cả các tệp thành chữ thường?
- 26. Xóa tất cả các ký tự ngoại trừ chữ và số và dấu cách bằng javascript
- 27. Chia chuỗi đàn áp tất cả các lĩnh vực vô
- 28. phân tách chuỗi java trên tất cả các số không phải là chữ và số trừ các dấu nháy đơn
- 29. Làm cách nào để lấy YAML trong Ruby kể từ 1.9.3 để kết xuất chuỗi ASCII-8Bit thành chuỗi?
- 30. Lấy chữ số thứ bảy từ số nguyên
Bạn cũng có thể sử dụng \ D cho [^ \ d] ...> "Lorem ipsum 123 456 879" .gsub (/ \ D /, '') => "123.456.879" – oylenshpeegul