Tôi có hàng trăm tệp văn bản bao gồm các công thức hóa học cùng với tường thuật bao gồm các giá trị số. Các công thức luôn đi trước các khoảng trắng nhưng có thể được theo sau bởi các khoảng trắng, dấu phẩy, dấu chấm, v.v.
Vấn đề là: các công thức không được định dạng để hiển thị số dưới dạng các mục con, ví dụ:
H2SO4, C5H11OH.
Tôi muốn định dạng các mục con dưới dạng thẻ HTML, ví dụ:
H<sub>2</sub>SO<sub>4</sub>, C<sub>5</sub>H<sub>11</sub>OH
Vì vậy, các mục đăng ký hiển thị trong HTML, ví dụ:
H 2 SO 4 , C 5 H 11 OH
Tôi đã chơi với việc hoàn thành việc này với Java, php, v.v., nhưng việc triển khai nhất thiết phải lộn xộn và vụng về. Tôi nghi ngờ rằng có một cách tiếp cận sed / awk thanh lịch.
Rõ ràng, một phần của giải pháp là tạo ra một biểu thức chính quy khớp với một chữ cái theo sau một hoặc nhiều chữ số làm cơ chế phát hiện công thức (có thể có những lỗi sai mà tôi sẽ sửa thủ công sau này). Sau đó, được đưa ra một công thức đã được xác định, một sự thay thế sed cần đặt trước mỗi chữ số hoặc chuỗi các chữ số với sub
thẻ và tuân theo nó với việc đóng thẻ phụ.
Phải có một lớp lót làm được điều này, nhưng tôi ở trên đầu.
Có ý kiến gì không?