您好,我想用Ruby中的Regex消除非单词字符。
假设我有:

pal1 = "a@b?a"
pal1 = /[a-z0-9]/.match(pal1)

当我把这个放到http://www.rubular.com/中时,它说匹配结果是:
阿坝州
但是当我用ruby运行代码时,它不是真的,它只给出“a”
我怎样才能改变我的regex在pal1中实现aba。
提前谢谢你的时间。

最佳答案

您可以使用gsub删除这些字符。

pal1 = 'a@b?a'
pal1.gsub(/[^a-z0-9]/i, '')
# => "aba"

您也可以使用scan来匹配这些字符并将它们连接在一起。
pal1 = 'a@b?a'
pal1.scan(/[a-z0-9]/i).join
# => "aba"

10-08 00:04