2011-08-04 19 views
7

Tôi có dòng này trong một kịch bản Lua rằng sụp đổ phần mềm của tôi mỗi khi:Không thể sử dụng Phần trăm (%) trong một mô hình Lua

fmt_url_map = string.gsub(fmt_url_map, '%2F','/') 

Tôi muốn thay thế tất cả các lần xuất hiện của %2F lần xuất hiện trong một văn bản để /. Nếu tôi xóa%, nó không bị lỗi.

Tôi đang làm gì sai?

Trả lời

12

% là biểu tượng đặc biệt trong các mẫu Lua. Nó được sử dụng để đại diện cho một số bộ ký tự, (được gọi là các lớp nhân vật). Ví dụ: %a đại diện cho bất kỳ chữ cái nào. Nếu bạn muốn so khớp theo nghĩa đen với số %, bạn cần sử dụng %%. Xem this section Hướng dẫn tham khảo Lua để biết thêm thông tin. Tôi nghi ngờ bạn đang gặp vấn đề vì %F không phải là lớp nhân vật.

+0

Đó là những biểu hiện không bình thường; chúng là các mẫu. Có một sự khác biệt lớn giữa chúng, và tài liệu Lua không bao giờ gọi chúng là regexes. –

+0

Bạn nói đúng, sai lầm của tôi. Tôi quên rằng Lua thiếu một toán tử luân phiên trong các mẫu. Tôi đã chỉnh sửa câu trả lời của mình. – Alex

6

Bạn cần phải thoát khỏi '%' với một '%'

fmt_url_map = string.gsub(fmt_url_map, '%%2F','/') 
Các vấn đề liên quan