2013-09-02 26 views
5

Tôi đang sử dụng Lua string.match để trích xuất một số giá trị của HTML nhưng tôi đang gặp một số vấn đề với một số thuộc tính.Lua string.match để trích xuất một số giá trị của HTML

Để trích xuất một số điện thoại như thế này: 0000-0000, Tôi đang sử dụng mặt nạ:

local value = string.match(STRING, "%d%d%d%d-%d%d%d%d") 

Nhưng Lua đang trở lại một cái gì đó như thế này: "0000000"

Đâu là "-" ở giữa của chuỗi mặt nạ?

Và có cách nào để làm một cái gì đó như thế này:

"%d[4]-%d[4]" (ghi rõ có bao nhiêu ký tự sẽ xuất hiện trong chuỗi)

+0

Để giúp cải thiện ngữ cảnh, bạn cũng có thể thêm nội dung 'STRING' chứa khi' string.match' được gọi? – greatwolf

+0

Chuỗi thực tế là một HTML sau phương thức GET. :) – Crasher

Trả lời

7

- là một nhân vật kiểm soát đặc biệt trong Lua patterns. Vì bạn muốn chữ số- ký tự, bạn cần phải thoát nó bằng ký tự %. Vì vậy, hãy sử dụng %-.

+0

'% -' cũng sẽ hoạt động :) – hjpotter92

+0

@ hjpotter92: Tôi đã sử dụng Regex trong một thời gian, vì vậy tôi đã quên ký tự thoát của Lua. –

+0

Đã không hoạt động với \ - nhưng nó hoạt động với% -. Cảm ơn bạn rất nhiều Nicol và hjpotter! – Crasher

Các vấn đề liên quan