我有一个字符串,我想用下划线替换所有特殊字符。
换句话说,我只想要26个英文字母(大小写),0-9和“ _”字符。
另请注意,这里有非英语字符,它们也需要替换为“ _”。
在Ruby中最优雅的方法是什么?
听起来您想用下划线替换所有非单词字符。因此,
result = subject.gsub(/[^\w]/, '_')
但是,您是否还可以替换换行符和其他空白字符呢?
如果不是,请将其更改为
result = subject.gsub(/[^\w\s]/, '_')
解释正则表达式
[^\w\s] # any character except: word characters (a-
# z, A-Z, 0-9, _), whitespace (\n, \r, \t,
# \f, and " ")
注意
正如@CarySwoveland提到的,[^\w]
也可以用简写形式编写\W
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句