Chuyển đổi kiểu chữ, so sánh, đếm, mã hóa ký tự và dọn khoảng trắng trong văn bản.
Danh sách văn bản có hình dạng xấu. Cột email được dán ra khỏi bảng tính có dấu cách ở cuối mỗi hàng. Đoạn trích nhật ký có dòng trùng lặp. Danh sách được sao chép từ PDF có ngắt dòng cứng ở giữa câu. Không có vấn đề nào trong số này là vấn đề khó khăn, nhưng việc thực hiện chúng bằng tay trên bốn trăm dòng là một điều khó khăn và việc tìm kiếm một ngôn ngữ kịch bản để dọn dẹp một lần thì chậm hơn so với tưởng tượng.
Mọi thứ ở đây đều hoạt động dựa trên văn bản trong hộp bên trên. Mỗi nút là một phép chuyển đổi, được áp dụng cho toàn bộ văn bản và mỗi nút trong số chúng đều có thể được hoàn tác. Làm việc theo từng bước nhỏ và kiểm tra số lượng khi bạn thực hiện.
Trật tự quan trọng hơn mọi người mong đợi. Việc cắt bớt trước khi loại bỏ trùng lặp hầu như luôn đúng: hai dòng chỉ khác nhau bởi một dấu cách ở cuối sẽ không trùng lặp cho đến khi bạn cắt bớt chúng, do đó, việc loại bỏ trùng lặp trước tiên sẽ âm thầm giữ cả hai dòng ở đúng vị trí.
Tương tự, hãy xóa các dòng trống trước khi sắp xếp nếu bạn muốn có một kết quả ngắn gọn, vì các dòng trống sắp xếp về một đầu và để lại một khoảng trống nên bạn vẫn phải loại bỏ.
Bảng thống kê cập nhật khi bạn nhập. Hầu hết đều tự giải thích, nhưng số lượng ký tự đáng được lưu ý vì đây là con số mà hầu hết các công cụ đều mắc lỗi.
Máy tính lưu trữ văn bản dưới dạng một chuỗi các đơn vị mã và một ký tự hiển thị duy nhất có thể chiếm một vài trong số chúng. Biểu tượng cảm xúc 👩💻 là thứ bạn có thể nhìn thấy, nhưng nó được tạo từ biểu tượng cảm xúc phụ nữ, một biểu tượng nối vô hình và một biểu tượng cảm xúc trên máy tính xách tay — tổng cộng có năm đơn vị mã. Một báo cáo truy cập ngây thơ 5. Công cụ này đếm các cụm đồ thị, là tên kỹ thuật của "cái mà một người sẽ gọi là một ký tự", vì vậy nó báo cáo 1.
Logic tương tự áp dụng cho các ký tự có dấu được viết bằng dấu kết hợp và gắn cờ biểu tượng cảm xúc. Nếu bạn đang tính theo giới hạn mà một hệ thống khác thực thi — cột cơ sở dữ liệu, cổng SMS, nền tảng xã hội — hãy lưu ý rằng hệ thống kia có thể được tính khác.
Các nút trích xuất kéo email, URL hoặc số ra khỏi văn bản phi cấu trúc và cung cấp cho bạn dưới dạng danh sách rõ ràng, loại bỏ trùng lặp và theo thứ tự xuất hiện.
URL trích xuất sẽ loại bỏ dấu câu ở cuối câu, vì vậy "visit https://example.com." mang lại URL không có dấu chấm và nó dừng ở dấu ngoặc đơn đóng để URL dấu ngoặc bên trong hiển thị rõ ràng.
Việc kết hợp email có chủ ý thực dụng hơn là đầy đủ. Thông số kỹ thuật hoàn chỉnh cho một địa chỉ email hợp lệ cho phép các cấu trúc mà về cơ bản không ai sử dụng và việc kết hợp tất cả chúng sẽ tạo ra kết quả tồi tệ hơn trên văn bản thực so với một mẫu chặt chẽ hơn.
Chuyển đổi "hello world" sang CamelCase thật dễ dàng. Việc chuyển đổi phân tích cú phápHTTPResponse2Json là lúc các công cụ không đồng ý vì các ranh giới được ngụ ý thay vì được đánh dấu.
Công cụ này phân chia thành ba tín hiệu: bất kỳ chuỗi ký tự không phải chữ cái, không phải chữ số nào (dấu cách, dấu gạch ngang, dấu gạch dưới, dấu chấm câu); một chữ cái viết thường hoặc chữ số theo sau là một chữ cái viết hoa; và một loạt các chữ cái viết hoa, theo sau là một cặp chữ hoa rồi chữ thường. Quy tắc cuối cùng đó là yếu tố phân tách chính xác "HTTP" khỏi "Phản hồi" trong phân tích cú phápHTTPResponse, thay vì tạo ra phản hồi p-a-r-s-e-h-t-t-p-response hoặc coi toàn bộ từ viết tắt là một từ được dán vào từ tiếp theo.
Kết quả là phân tích cú phápHTTPResponse trở thành phân tích cú pháp_http_response trong trường hợp rắn và phân tích cú pháp-http-response trong trường hợp kebab, đây là điều mà hầu hết các hướng dẫn về phong cách đều mong đợi.
Trường hợp tiêu đề viết hoa chữ cái đầu tiên của mỗi từ và viết thường các chữ còn lại, vì vậy "hello WORLD" trở thành "Hello World". Nó không biết về các quy tắc hướng dẫn văn phong giữ các từ ngắn như "of" và "the" chữ thường, bởi vì các quy tắc đó thay đổi tùy theo lần xuất bản và việc áp dụng một cách im lặng sẽ chỉ là phỏng đoán.
Trường hợp câu viết thường tất cả mọi thứ và sau đó viết hoa chữ cái đầu tiên của mỗi câu, phát hiện các kết thúc câu bằng dấu chấm, dấu chấm hỏi và dấu chấm than, bao gồm cả các ký tự tương đương CJK có độ rộng đầy đủ của chúng. Đó là lựa chọn phù hợp cho văn bản đến ALL CAPS.
Biến đổi slug tạo ra mã định danh an toàn URL: chữ thường, dấu trọng âm được gấp thành chữ cái cơ bản và mọi dòng ký tự không phải chữ và số được thay thế bằng một dấu gạch nối.
Việc gấp dấu được thực hiện bằng cách phân tách các ký tự và loại bỏ các dấu kết hợp, do đó "Café Crème" trở thành "cafe-creme" chứ không phải "caf-cr-me". Việc bỏ hoàn toàn các chữ cái có dấu là một lỗi phổ biến trong trình tạo slug và nó làm sai tên.
Dấu phân cách đầu và cuối bị loại bỏ, đồng thời biểu tượng cảm xúc và các ký hiệu khác bị xóa vì chúng không có phần trình bày URL hữu ích.
Tìm và thay thế có hai chế độ. Chế độ chữ — mặc định — thoát khỏi mọi ký tự đặc biệt, vì vậy việc tìm kiếm "a.b" sẽ tìm thấy chính xác "a.b" chứ không phải "axb". Chế độ Regex chuyển mẫu của bạn theo nguyên trạng.
Mỗi mẫu bạn gõ đều được biên dịch bên trong một bộ bảo vệ. Nếu nó không hợp lệ, bạn sẽ nhận được thông báo giải thích vấn đề và văn bản của bạn không bị ảnh hưởng. Điều này quan trọng hơn những gì bạn tưởng: việc nhập một biểu thức chính quy là một quá trình tăng dần và chỉ có một "(" là trạng thái trung gian hoàn toàn bình thường trên đường đến một mẫu hoạt động. Một công cụ đưa ra lỗi chưa được xử lý tại thời điểm đó — hoặc tệ hơn, xóa hộp — là không thể sử dụng được.
Trong chế độ biểu thức chính quy, tính năng thay thế hỗ trợ các nhóm chụp bằng $1, $2 và vân vân. Định dạng lại ngày tháng là ví dụ điển hình: find (\d{4})-(\d{2})-(\d{2}) và thay thế bằng $3/$2/$1 quay lại 2024-01-02 vào trong 02/01/2024.
Tùy chọn "Toàn bộ từ" bao bọc tìm kiếm của bạn trong các ranh giới từ, do đó, tìm kiếm "mèo" khớp với từ mèo nhưng không khớp với "mèo" bên trong "nối".
Nó sáng tác với cả hai chế độ. Ở chế độ chữ, văn bản của bạn được thoát trước rồi đến giới hạn; trong chế độ biểu thức chính quy, toàn bộ mẫu của bạn được giới hạn thành một nhóm, vì vậy các lựa chọn thay thế như cat|dog hoạt động như bạn mong đợi thay vì chỉ ràng buộc ranh giới với nhánh đầu tiên.