CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
Bài viết blog CFSDN này thảo luận về các biểu thức chính quy về các bảng (bảng) được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.
Tôi đã thấy rất nhiều mã UBB, bao gồm JS, ASP và JSP, nhưng tôi chưa bao giờ tìm thấy UBB cho bảng. Mặc dù chức năng bảng tương tự có thể được sử dụng trực tiếp trong chế độ HTML, nhưng đối với một số trang web mở, nó không thích hợp để mở. Chế độ HTML Vì vậy, tôi luôn muốn triển khai UBB của các bảng. Ý tưởng của tôi là tạo biểu mẫu trong trình soạn thảo HTML (HTML, FRONTPAGE, DW), thay thế < bằng [, > bằng ], sao chép trực tiếp HTML và gửi nó để xuất bản. Thật không may, sau khi luyện tập, tôi thấy khó khăn. Vì thẻ HTML của bảng rõ ràng là khác với thẻ HTML của các phần tử khác nên nguyên nhân chính là do TD, TR, đặc biệt là TABLE có thể lồng nhau. Trên thực tế, vấn đề chính mà tôi gặp phải là tôi không thể viết các biểu thức chính quy không chứa một từ hoặc câu lệnh nhất định (không phải một ký tự đơn lẻ), chẳng hạn như dấu sau QUOTE: [TABLE][TR] [TD] Haha [TABLE ] [TR] [TD ][/TD][/TR][/TABLE][/TD][/TR][/TABLE] Nếu bạn muốn khớp chính xác [TD]*[/TD], bạn phải đảm bảo rằng * không bao gồm [TABLE][TR][TD], v.v. Hãy cẩn thận không sử dụng [^\[]* À, bởi vì? nó không thể khớp chính xác [/TD], vì vậy câu hỏi đặt ra là làm cách nào để đảm bảo rằng * này không bao gồm [TABLE][TR][TD] (tôi không thể viết nó). Vì vậy, tôi: Hãy lùi lại một bước, trước tiên hãy sử dụng \[td[^\]]*?\][^\[]*?\[bảng để tìm bảng cuối cùng (thực ra là bảng trong cùng), sau đó chuyển đổi bảng trong cùng cho các thẻ HTML và sau đó vòng lặp bắt đầu lại cho đến khi tất cả các thẻ được thay thế. Về mặt lý thuyết điều này là có thể. Tôi đang thử nghiệm với JSP và sẽ mất thời gian. Tôi hy vọng những người bạn quan tâm có thể thử nghiệm với ASP và PHP. Vì đang cần gấp nên tôi lùi lại một bước và trực tiếp tìm kiếm ][TABLE] và các thẻ khác rồi thay thế chúng. Có 4 biểu thức là [TABLE][TR][TD], [/TD][/TR. [TR] [TD],[/TD][TD],[/TD][/TR][BẢNG] , như mọi người đều biết, UBB cần thay thế /R/N bằng
, vì vậy tôi đã sử dụng các quy tắc thông thường được thực hiện ở trên để tìm và thay thế tất cả [TABLE] và [TR] và [TD] và [/TD] và [/ TR ] và [/BẢNG]. Trên thực tế, biểu thức này có nhiều chức năng ngắt dòng hơn biểu thức sau. Thiếu sót của nó là rõ ràng, đó là nó không thể loại bỏ hoàn toàn các thẻ không khớp. Nó phải đảm bảo rằng tất cả các thẻ TABLE đều được khớp chính xác (thay thế các thẻ đó bằng TBODY. Chỉ cần. thay đổi nó), nếu không nó sẽ là một mớ hỗn độn. Nói chung là mình đã luyện tập tốt bước này. Lùi lại một bước, thực ra không có cách nào để quay lại. Đó là trực tiếp tìm kiếm và thay thế [TABLE] và các thẻ khác. Đây là phương pháp rườm rà nhất và kém hiệu quả nhất, vì mọi người đều biết rằng có nhiều ngắt dòng trong đó. các thẻ bảng trong trình soạn thảo HTML và UBB được chuyển đổi thành
để ngắt dòng, vì vậy sẽ tìm thấy nhiều dòng trống khi phương pháp này được triển khai và một thiếu sót chung của phương pháp này và bước trên là nó không thể loại bỏ thẻ không phù hợp. Đính kèm là biểu thức chính quy mà tôi đã viết sau khi lùi lại một bước: (Tôi sử dụng JSP) QUOTE: \\[(bảng)([^\\[]*?)\\][^\\[]*?\\[tr\\][^\\[]*?\\[td([^\ \[]*)\\]|\\[\\/(td)\\][^\\[]*?\\[\\/tr\\][^\\[]*?\\[ tr\\][^\ \[]*?\\[td([^\\[]*)\\]|\\[\\/(td)\\][^\\[]*?\\[td([^\ \[]*)\\]|\\[\\/(td)\\][^\\[]*?\\[\\/tr\\][^\\[]*?\\[ \\/bàn\\] Tôi nghĩ sẽ ổn khi sử dụng điều này nếu quản trị viên đang xuất bản thông tin hoặc thứ gì đó và có thể đảm bảo rằng các dấu trong bảng là chính xác. Trên thực tế, nếu có người muốn gây rắc rối thì dù UBB có khắt khe đến đâu cũng không thể ngăn cản được. Các bên quan tâm có thể thảo luận tại đây, đưa ra các đề xuất tốt hơn và tạo ra UBB tốt nhất và toàn diện nhất.
。
Cuối cùng, bài viết thảo luận về biểu thức chính quy về bảng (bảng) kết thúc tại đây. Nếu bạn muốn biết thêm về thảo luận về biểu thức chính quy về bảng (bảng), vui lòng tìm kiếm các bài viết về CFSDN hoặc tiếp tục duyệt qua các bài viết liên quan, tôi hy vọng vậy. bạn sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!