删除所有非字母数字字符,但保留变音符号(重音符号)和 - (短划线)

时间:2014-03-09 17:56:25

标签: ruby regex

我想删除任何内容:

  1. 不是字母数字(但保留UTF字符é和ã等等)
  2. 不 -
  3. 我试过这个

    string.gsub! /\W\D/, ''
    

    但这会删除重音符号。

    "héllo3".gsub /\W\D/, '' #=> hllo3
    

    我尝试了\P{Alnum},但这删除了破折号。

    我需要像...这样的东西。

    "héllo - there - 1".gsub /regex/ #=> héllo-there-1
    

    这是一个Rubular:http://rubular.com/r/RjWwdNka8S

1 个答案:

答案 0 :(得分:6)

显而易见的答案似乎有效。

[^-\p{Alnum}]

指定既不是破折号也不是Alnum类的成员的字符。

演示:http://rubular.com/r/pYm9hViNHz