Kết hợp các đoạn html với ít nhất một từ trong tất cả các chữ hoa


1

Sử dụng regex hoặc bất cứ điều gì, tôi cần khớp bất kỳ đoạn nào có chứa ít nhất một từ tất cả các chữ hoa.

Sau đó chuyển đổi nó thành một tiêu đề và viết hoa tất cả nội dung của tiêu đề. Trong ví dụ dưới đây, từ Ở đây nên được đổi thành TẠI ĐÂY . Điều này bao gồm các ký tự có dấu.

Tôi có thể làm cái này như thế nào?

<P STYLE="margin-bottom: 0cm"><BR>
    </P>
</DIV>
<P CLASS="western" ALIGN=CENTER STYLE="margin-bottom: 0cm; line-height: 0.42cm">
<FONT SIZE=4><B>TITLE Here</B></FONT></P>

Tôi đang sử dụng Linux.


Vui lòng bao gồm một ví dụ lớn hơn. Tất cả các dòng có liên quan sẽ bắt đầu với <FONT? Từ CAPS có thể ở bất cứ đâu trong đoạn văn? Tiêu đề nên ở đầu đoạn văn?
terdon

1
Phân tích cú pháp [X] HTML bằng regexs không được khuyến khích. Nếu bạn khăng khăng thực hiện nó, có lẽ bạn cần cho chúng tôi biết chính xác hương vị của regexs bạn muốn sử dụng.
Scott

Tôi không khăng khăng với regex nhưng không biết cách bán tự động nào khác để viết hoa câu. Trong trường hợp cụ thể này, tệp html đã được thực hiện mà không cần khai báo lớp. Tôi đã xem qua tập tin và tôi nhận thấy rằng tất cả (hoặc gần như tất cả) các tiêu đề đều có điểm chung: ít nhất một từ tất cả các chữ hoa. Đây là lý do đằng sau câu hỏi của tôi.
Làm

Câu trả lời:


1

Bạn gần như chắc chắn có thể làm điều này bằng cách sử dụng các lệnh console, nhưng điều này nghe có vẻ như là một công việc sửa chữa một lần chứ không phải là một việc vặt thông thường vì vậy tôi sẽ sử dụng công cụ regex đồ họa yêu thích của tôi, trình soạn thảo văn bản mã nguồn mở rất tiện dụng có tên là jEdit. (Xem jedit.org để biết chi tiết.)

Khi bạn đã cài đặt jEdit, bạn có thể mở hộp thoại "Tìm kiếm và thay thế" bằng cách nhấn Ctrl + F hoặc bằng cách vào menu "Tìm kiếm" và chọn mục "Tìm".

Trong hộp thoại "Tìm kiếm và Thay thế", bạn cần chọn tùy chọn "Tìm kiếm trong" mà bạn muốn sử dụng. "Bộ đệm hiện tại" sẽ chỉ thay đổi tệp hiện tại, "Tất cả bộ đệm" sẽ thay đổi tất cả các tệp hiện đang mở trong jEdit và tùy chọn "Thư mục" sẽ cho phép bạn thay đổi tất cả các tệp trong thư mục (mà bạn chỉ định ở cuối hộp thoại ) phù hợp với bộ lọc bạn chỉ định (chẳng hạn như *.htmlhoặc *.php). Tùy chọn "Thư mục" rất mạnh mẽ và có thể là tùy chọn bạn cần, nhưng hãy cẩn thận với nó và kiểm tra thật kỹ xem tìm kiếm / thay thế của bạn không gây ra thay đổi bất ngờ bằng cách khớp theo những cách bạn không xem xét.

Tiếp theo, bạn cần đánh dấu vào ô "Biểu thức chính quy" ở giữa hộp thoại.

Bây giờ hãy nhập vào hộp văn bản "Tìm kiếm" regex bạn muốn sử dụng để nhắm mục tiêu văn bản cần thay đổi. Nếu tôi hiểu yêu cầu của bạn, mẫu regex này có thể thực hiện công việc:

(?<=>)([^<]*\p{Lu}{2,}[^<]*)(?=<)(?!</script)

Mẫu này cho biết "chọn văn bản đứng trước a >và chứa bất kỳ số lượng ký tự nào <sau đó ít nhất là hai ký tự viết hoa liên tiếp, sau đó là bất kỳ số ký tự nào không phải <và cuối cùng được theo sau bởi <nhưng KHÔNG phải bởi </script".

Sau đó, bạn cần chọn tùy chọn "Trả về giá trị của đoạn trích BeanShell" và nhập vào hộp văn bản "Thay thế bằng":

_1.toUpperCase()

Đoạn trích BeanShell này chỉ nói "văn bản được chụp trong nhóm chụp đầu tiên khớp với biểu thức chính quy, được chuyển đổi thành chữ hoa".

Tôi đã thử nghiệm điều này và nó vui vẻ chạy qua một tệp HTML để tìm các chuỗi văn bản thô liên tiếp chứa hai hoặc nhiều ký tự in hoa liên tiếp. Xin lưu ý rằng bất kỳ đoạn nào có nội dung nào đó vô tội như UK hoặc USB cũng sẽ được khớp với biểu thức chính này, vì vậy bạn có thể muốn thay đổi bộ {2,}định lượng để {4,}có ít nhất bốn ký tự viết hoa liên tiếp cho một chuỗi được khớp.

Ngoài ra, hãy đảm bảo kiểm tra thật kỹ trước khi bạn giải phóng tệp này trên một tệp hoặc tập tin có giá trị (và đảm bảo rằng bạn đã sao lưu tất cả các bản gốc trước để bạn có thể khôi phục chúng nếu mọi thứ không ổn và bạn không nhận thấy cho đến khi bạn đã lưu các thay đổi).


Tìm kiếm hoạt động khá tốt nhưng kịch bản không hoạt động.
Làm

Bạn có đang tìm thấy cùng một vấn đề kỳ lạ mà tôi gặp phải (và giả sử đó là một vấn đề khó hiểu trên máy của tôi): rằng các nút "Thay thế" và "Thay thế / Tìm" không làm gì cả, nhưng nút "Thay thế tất cả" không hoạt động?
Arkanon

Đúng. Sắp xếp thứ hạng Không chắc chắn nó đã viết hoa văn bản khó khăn.
Làm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.