2016-08-02 57 views
1

如果我給定的數據串如何使用正則表達式匹配,以列出所有的球拍給

"data-symbol='1' 
data-symbol='2' 
data-symbol='3' 
data-symbol='4' " 

我如何使用正則表達式匹配拿號碼的開出的字符串,並把他們列入清單 '(1 2 3 4),訂單是沒有必要的。對於這些數字,他們可以是任何他們只是用作示例的東西。

回答

4

你可以使用與捕獲組一起regexp-match*string->number來提取您的字符串信息:

> (map string->number 
     (regexp-match* #px"data-symbol='(\\d+)'" 
         "data-symbol='1' 
         data-symbol='2' 
         data-symbol='3' 
         data-symbol='4'" 
         #:match-select second)) 
'(1 2 3 4) 

regexp-match*功能查找特定字符串的正則表達式的所有比賽,並#:match-select用來挑捕獲組返回結果。然後string->number用於將匹配的每個元素轉換爲數字值。

但要小心:它看起來像你可能試圖用正則表達式解析HTML,並且在這個網站that way leads only to madness中有着名的註釋。考慮使用Racket的HTML解析庫中的一個。

+0

不要擔心即時通訊不會試圖解析HTML,我非常瞭解這篇文章大聲笑。也感謝您的答案 – DankMemer312

相關問題