从字符串中删除所有非字母,非数字字符?

Mel*_*bel 6 ruby regex string

如果我想删除诸如:.!,'"^ - #来自一个字符串数组,我将如何保留所有字母和数字字符.

允许的字母字符还应包括带变音标记的字母,包括à或ç.

Mar*_*une 18

您应该使用具有正确字符属性的正则表达式.在这种情况下,您可以反转Alnum类(字母和数字字符):

"?¡ Marc-André !?".gsub(/\p{^Alnum}/, '') # => "MarcAndré"
Run Code Online (Sandbox Code Playgroud)

对于更复杂的情况,假设您还想要标点符号,您还可以构建一组可接受的字符,例如:

"?¡ Marc-André !?".gsub(/[^\p{Alnum}\p{Punct}]/, '') # => "¡MarcAndré!"
Run Code Online (Sandbox Code Playgroud)

对于所有角色属性,您可以参考doc.