如果给我一串数据
"data-symbol='1'
data-symbol='2'
data-symbol='3'
data-symbol='4' "
如何使用regexp-match从字符串中取出数字并将它们放入列表中 '(1 2 3 4),没有必要。另外,对于数字,它们可以是任何它们仅用作示例。
答案 0 :(得分: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解析库之一。