Văn bản & công cụ hàng ngày · Bộ công cụ văn bản
Nhóm chụp Regex trong tìm và thay thế: sắp xếp lại ngày bằng $1, $2, $3
· Cách thức hoạt động
biểu thức chính quy find-and-replace ngày tháng
Hiển thị cách các dấu ngoặc đơn nắm bắt các phần của một kết quả khớp và cách $1, $2 và $3 sử dụng lại chúng trong phần thay thế, bằng cách sử dụng cách viết lại cổ điển ISO theo ngày tháng năm và một vài cách sắp xếp lại khác.
Bốn trăm ngày không đúng thứ tự — tại sao việc chỉnh sửa thủ công 2024-01-02 thành 02/01/2024 lại là công việc dành cho các nhóm thu thập
Việc xuất bảng tính có thể để lại bốn trăm ngày theo thứ tự ngày tháng năm theo kiểu ISO khi bảng tính ở Vương quốc Anh mong đợi ngày/month/year. Việc chỉnh sửa `2024-01-02` thành `02/01/2024` bằng tay sẽ chậm nhưng rủi ro lớn hơn là tính không nhất quán: một hàng bị bỏ qua hoặc chữ số chuyển đổi có thể tồn tại cho đến khi báo cáo được phân phối.
Tìm và thay thế có thể coi mỗi ngày là sự sắp xếp giống nhau của các phần thay vì bốn trăm chuỗi không liên quan. Một biểu thức chính quy xác định năm, tháng và ngày, trong khi phần thay thế sẽ ghi lại những phần đã nắm bắt đó theo thứ tự khác. Các chữ số gốc được sử dụng lại nên thao tác sẽ thay đổi cấu trúc thay vì gõ lại các giá trị.
Dấu ngoặc đơn chứa đựng nội dung gì — cách mỗi nhóm nhận được một số từ trái sang phải và \d{4} và \d{2} khớp với nhau như thế nào
Dấu ngoặc đơn tạo các nhóm chụp. Trong `(\d{4})-(\d{2})-(\d{2})`, nhóm đầu tiên nắm bắt được bốn chữ số, nhóm thứ hai nắm bắt được hai chữ số và nhóm thứ ba nắm bắt được hai chữ số. `\d` có nghĩa là một chữ số trong mẫu JavaScript này, trong khi `{4}` và `{2}` chỉ định số lần lặp lại chính xác được yêu cầu trong mỗi nhóm.
Các nhóm nhận được số từ mỗi dấu ngoặc đơn mở khi công cụ đọc từ trái sang phải. Đối với `2024-01-02`, nhóm 1 là `2024`, nhóm 2 là `01` và nhóm 3 là `02`; dấu gạch ngang khớp với dấu phân cách nhưng nằm ngoài dấu ngoặc đơn, vì vậy chúng không được giữ lại dưới dạng giá trị được ghi lại.
Sử dụng $1, $2 và $3 để thay thế — xây dựng lại trận đấu theo thứ tự mới với các dấu phân cách mới
Việc thay thế `$3/$2/$1` yêu cầu JavaScript chèn lần chụp thứ ba, dấu gạch chéo, lần chụp thứ hai, dấu gạch chéo khác và lần chụp đầu tiên. Áp dụng cho ví dụ này, những tham chiếu đó tạo ra `02/01/2024`. Tham chiếu đô la là hướng dẫn thay thế, không phải văn bản cũng phải xuất hiện vào ngày trùng khớp.
ToolAcre chuyển chuỗi thay thế sang thao tác thay thế chuỗi JavaScript tiêu chuẩn. Nguồn của nó hỗ trợ rõ ràng các tham chiếu được đánh số như `$1`, `$2` và `$3`, đồng thời mẫu tìm kiếm được biên soạn trên toàn cầu. Cờ toàn cầu đó là lý do tại sao mỗi ngày khớp được viết lại trong một thao tác thay vì chỉ khớp đầu tiên.
Ví dụ đã hoạt động - (\d{4})-(\d{2})-(\d{2}) được thay thế bằng $3/$2/$1, sau đó kiểm tra số lượng thay thế so với số hàng
Dán cột đã xuất, bật Regex, nhập `(\d{4})-(\d{2})-(\d{2})` trong Tìm và nhập `$3/$2/$1` trong Thay thế. Việc chọn Thay thế tất cả trước tiên sẽ đếm các kết quả trùng khớp rồi viết lại chúng, do đó, kết quả sẽ báo cáo số lượng chuỗi hình ngày tháng đã được thay đổi trên toàn bộ văn bản được dán.
So sánh số đó với số hàng dự kiến trước khi sao chép kết quả trở lại bảng tính. Số lượng thấp hơn trỏ đến khoảng trống hoặc ngày ở định dạng khác; số lượng cao hơn có nghĩa là văn bản tương tự ở nơi khác cũng khớp. Công cụ này không có bản xem trước thay thế, vì vậy hãy sử dụng hành động Hoàn tác nếu số lượng hoặc kết quả đầu ra cho thấy mẫu quá rộng.
Sắp xếp lại nhiều thứ hơn - 'Họ, Họ' thành 'Họ' và hoán đổi các cột của danh sách hai cột
Nguyên tắc tương tự có thể thay đổi `Surname, Forename` thành `Forename Surname` khi mỗi dòng chắc chắn chứa một dấu phẩy: tìm `([^,]+), ([^\r\n]+)` và thay thế bằng `$2 $1`. Ở đây, mỗi nhóm ghi lại văn bản ở một bên của dấu phân cách đã biết, thay vì giả sử một số chữ số cố định.
Hoán đổi hai cột không phải là một thao tác bảng tích hợp, mặc dù cách diễn đạt phác thảo rộng. Nó chỉ hoạt động khi văn bản được dán có dấu phân cách đáng tin cậy và mẫu mô tả ranh giới dòng một cách an toàn. Dấu phẩy bên trong tên, trường bị thiếu hoặc tab không nhất quán yêu cầu phải dọn dẹp hoặc tạo mẫu chính xác hơn trước khi bất kỳ sự thay thế hàng loạt nào trở nên đáng tin cậy.
Việc sắp xếp lại nhiều hơn chỉ hoạt động khi đầu vào có dấu phân cách đáng tin cậy
Dấu chấm trong mẫu có nghĩa là hầu hết mọi ký tự, do đó, mẫu ngày được viết là `(\d{4}).(\d{2}).(\d{2})` cũng chấp nhận dấu gạch chéo, dấu cách hoặc chữ cái giữa các trường. Thoát khỏi dấu chấm theo nghĩa đen dưới dạng `\.` và thoát khỏi các siêu ký tự khác khi chúng phải khớp với nhau. Dấu ngoặc không hợp lệ hoặc dấu ngoặc đơn chưa hoàn thành được báo cáo mà không thay đổi văn bản.
Việc đánh số nhóm bắt đầu tại 1 chứ không phải 0. Ký hiệu đô la cũng có ý nghĩa thay thế đặc biệt: `$&` chèn toàn bộ kết quả khớp và `$$` tạo ra một ký hiệu đô la theo nghĩa đen. Hành vi này áp dụng ngay cả khi chế độ biểu thức chính quy bị tắt vì ToolAcre chỉ thoát khỏi phía tìm kiếm; nó không thoát khỏi chuỗi thay thế trước khi JavaScript xử lý nó.
Điều này không bao gồm những gì - các nhóm được đặt tên, tên nhìn phía sau và tên tháng cần bảng tra cứu
Các nhóm được đánh số có thể sắp xếp lại văn bản đã có trong kết quả khớp nhưng họ không thể dịch `Jan` thành `01` vì việc đó yêu cầu tra cứu thay vì sắp xếp lại. Bài viết này cũng không dựa vào các nhóm được đặt tên hoặc cái nhìn phía sau, tính hữu dụng và hỗ trợ trình duyệt của chúng bao gồm một tập hợp các lựa chọn khác với việc dọn dẹp xuất đơn giản này.
Biểu thức ngày tháng kiểm tra hình dạng chứ không phải sự thật về lịch. Nó sẽ khớp với `2024-99-88` vì hai chữ số thỏa mãn từng nhóm nhỏ hơn. Xác thực ngày tháng trong bảng tính hoặc hệ thống nguồn khi tính chính xác quan trọng. Tìm và thay thế phù hợp để định dạng nhất quán chứ không phải để chứng minh rằng mỗi tháng và ngày được ghi lại đều hợp lệ.
Bài học rút ra - một mẫu, một mẫu thay thế, mỗi hàng được sửa cùng một lúc trong Bộ công cụ văn bản, có tính năng hoàn tác nếu kết quả không như bạn mong đợi
Các nhóm chụp biến một chuỗi phù hợp thành các phần có thể tái sử dụng. Đối với cột ngày thống nhất, ba nhóm giữ nguyên năm, tháng và ngày ban đầu trong khi `$3/$2/$1` sắp xếp chúng theo thứ tự ở Vương quốc Anh. Tìm kiếm tổng thể xử lý tất cả các kết quả phù hợp và số lượng được báo cáo cung cấp khả năng kiểm tra ngay lập tức đối với số lượng hàng bạn dự định thay đổi.
Giữ cho quy trình làm việc có thể xem xét được: giữ lại một bản sao của bản xuất, sử dụng mẫu hẹp nhất phù hợp với nó, so sánh số lượng, kiểm tra một số kết quả và hoàn tác khi bằng chứng không đồng ý với mong đợi của bạn. Một sự thay thế có phạm vi phù hợp có thể loại bỏ việc chỉnh sửa lặp đi lặp lại mà không giả vờ rằng mọi giá trị có hình dạng chữ số đều tự động là một ngày hợp lệ.