Vì vậy, tôi đã đoạn mã sau để tách một chuỗi giữa khoảng trắng:Lua: chia chuỗi thành lời trừ khi trích dẫn
text = "I am 'the text'"
for string in text:gmatch("%S+") do
print(string)
end
Kết quả:
I
am
'the
text'
Nhưng tôi cần phải làm điều này:
I
am
the text --[[yep, without the quotes]]
Tôi làm cách nào để thực hiện việc này?
Chỉnh sửa: chỉ để bổ sung cho câu hỏi, ý tưởng là chuyển các tham số từ chương trình sang chương trình khác. Đây là yêu cầu kéo mà tôi đang làm việc, hiện đang được xem xét: https://github.com/mpv-player/mpv/pull/1619
Tôi muốn một cái gì đó bằng chuỗi phân tích cú pháp. Dù sao, trong khi tôi đã không nói trong bài viết tôi cần một cái gì đó để làm việc cả hai với dấu nháy đơn và đôi, vì ý tưởng của mã này là để phân tích các thông số từ trình bao. – m45t3r
Thật dễ dàng để cập nhật giải pháp này để làm cho nó hoạt động với các dấu nháy đơn và kép; chỉ cần thay thế '"^'" 'bằng' [[^ ["']]]' và '"' $ "' bằng '[[[']]]. Bạn cũng có thể cần phải kiểm tra xem báo giá mở có khớp với giá đóng không. –
Có thể thực hiện với phân tích cú pháp chuỗi, nhưng giải pháp có thể phức tạp hơn (và không phải với một biểu thức như các mẫu Lua không đủ mạnh để thể hiện những gì bạn cần). –