Ruby Regex消除非单词字符

Lui*_*ndo 1 ruby regex

您好我想在Ruby中用Regex消除非单词字符.

让我们说我有:

pal1 = "a@b?a"
pal1 = /[a-z0-9]/.match(pal1)
Run Code Online (Sandbox Code Playgroud)

当我把它放在http://www.rubular.com/中时,它表示匹配结果是:aba

但是,当我在我的ruby中运行代码时,它不是真的,它只给出了"a"

如何更改我的正则表达式以在pal1中实现aba.

在此先感谢您的时间.

hwn*_*wnd 6

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

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

您也可以使用scan来匹配这些字符,并加入他们在一起.

pal1 = 'a@b?a'
pal1.scan(/[a-z0-9]/i).join
# => "aba"
Run Code Online (Sandbox Code Playgroud)