Trích xuất số từ văn bản

Chỉ cần dán bất kỳ tài liệu nguồn hỗn hợp nào, hóa đơn, trang sản phẩm đã được thu thập dữ liệu, nhật ký trò chuyện hoặc tệp CSV chứa chú thích, bạn sẽ nhận được danh sách sạch gồm tất cả các số trong đó. Các số nguyên, số thập phân, số âm và số tiền đều được nhận diện chỉ với một lần xử lý bằng regular expression. Kết quả đầu ra đã được loại bỏ dữ liệu trùng lặp, mỗi số chiếm một dòng, sẵn sàng để nhập vào bảng tính, máy tính hay công cụ thống kê.

Làm thế nào để trích xuất các con số từ văn bản

  1. 1

    Dán nguồn

    Chỉ cần nhập văn bản vào, bất kể nó có bẩn đến đâu, các từ xung quanh và dấu câu đều sẽ bị bỏ qua.

  2. 2

    Chọn độ chính xác

    Bật/tắt tùy chọn "Bao gồm số thập phân" để thu thập dữ liệu dạng `3.14`; nếu tắt tùy chọn này thì chỉ trích xuất các giá trị nguyên hoàn chỉnh như `42`.

  3. 3

    Thực thi công cụ trích xuất

    Mỗi trận đấu đều được ghi lại, các giá trị duy nhất được lưu giữ, và bạn sẽ nhận được số lượng các con số khác nhau xuất hiện.

  4. 4

    Sao chép danh sách

    Mỗi dòng chứa một số, sẵn sàng để dán vào Excel, phần mềm Numbers hoặc bất kỳ công cụ xử lý dữ liệu theo cột nào khác.

Những gì bộ so khớp nhận diện

Định dạng regex được sử dụng là /-?\d+(?:\.\d+)?/ khi chế độ số thập phân được kích hoạt, và là /-?\d+/ trong các trường hợp khác. Định dạng này bao quát đầy đủ các dạng số phổ biến mà không gặp phải tình trạng mơ hồ do khác biệt giữa các vùng ngôn ngữ.

Các ví dụ về giá trị đã thu thập

Đầu vào Giá trị thu được (bật thập phân)
Tổng cộng: 1299.99 sau thuế 1299.99
Nhiệt độ giảm xuống -4.5C -4.5
Phiên bản 2.1.3 phát hành hôm nay 2.1, 3
Mã: 001, 042, 1007 001, 042, 1007
Điểm: 87% đạt 87

Những gì công cụ không xử lý

  • Dấu phân tách hàng nghìn. 1,234.56 được trích xuất thành 1234.56. Hãy loại bỏ dấu phân tách trước nếu bạn cần số đầy đủ.
  • Dấu phẩy thập phân kiểu châu Âu. 3,14 được đọc thành 314. Hãy đổi dấu phẩy thành dấu chấm trước khi trích xuất.
  • Ký hiệu khoa học. 6.02e23 trả về 6.0223. Hãy tự phân tích nguồn gốc nếu bạn cần dạng số mũ.
  • Phân số. 1/2 trở thành 12, chứ không phải 0.5.

Các thao tác hữu ích tiếp theo

  • Đưa danh sách vào công cụ thống kê để tính giá trị trung bình, trung vị và độ lệch chuẩn.
  • Sắp xếp và loại bỏ trùng lặp bằng sort | uniq để tìm các giá trị duy nhất trong nhật ký.
  • So sánh hai kết quả trích xuất cạnh nhau để phát hiện các mục còn thiếu trong hóa đơn.

Câu hỏi thường gặp

Nó bỏ qua các ký hiệu tiền tệ và chỉ trả về phần số. Ví dụ, $1,299.99 sẽ trở thành 1299.99 vì dấu phẩy không được coi là dấu phân tách nghìn. Nếu bạn muốn nhận được 1299.99 một cách liền mạch, hãy loại bỏ các dấu phẩy khỏi dữ liệu nguồn.

Regular expression bắt giữ chuỗi số một cách chính xác, do đó 007 vẫn giữ nguyên dạng 007. Điều này rất quan trọng khi các con số thực chất là mã định danh, mã bộ phận hoặc mã bưu chính thay vì các giá trị toán học.

Theo mặc định, các bản sao trùng sẽ được loại bỏ để bạn nhận được danh sách sạch và rõ ràng. Nếu cần dữ liệu luồng nguyên gốc với thứ tự được giữ nguyên, hãy xử lý nguồn dữ liệu qua một quy trình xử lý kiểu grep thay vào đó.

Đoạn văn bản được xử lý ngay trong yêu cầu và không được lưu trữ sau khi có phản hồi; dữ liệu đầu vào của bạn sẽ không được lưu giữ ở bất kỳ đâu.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác