我正在搜索一个正则表达式,让我可以连续替换所有字符,但字母和数字以及一个空格。
例如:
string = "a b c e f g 1 2 3 !"
应该用ruby替换为"a b c e f g 1 2 3 "
匹配字母和数字对于[a-zA-Z0-9]与列表运算符不同。 但是如何将“”{2,}的区间运算符与列表运算符组合起来,因为区间看起来它们不能在列表运算符中使用?还是有另一种方法。
答案 0 :(得分:3)
您可以简单地用一个空格替换所有非字母数字字符序列:
string.gsub(/[^a-zA-Z0-9]+/, " ")
答案 1 :(得分:0)
irb(main):001:0> string = "abc e f g 1 2 3 !"
=> "abc e f g 1 2 3 !"
irb(main):002:0> string.gsub(/[^[:alnum:]]/,"").gsub(/(.)/,'\1 ')
=> "a b c e f g 1 2 3 "
irb(main):002:0> string = "abc e f g 1 2 3 !"
=> "abc e f g 1 2 3 !"
irb(main):003:0> string.gsub(/[^a-zA-Z0-9]+/, " ")
=> "abc e f g 1 2 3 "