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

Jum*_*ton 2 ruby regex

我想删除任何内容:

  1. 不是字母数字(但保留UTF字符é和ã等...)
  2. 不 -

我试过这个

string.gsub! /\W\D/, ''
Run Code Online (Sandbox Code Playgroud)

但这会消除重音.

"héllo3".gsub /\W\D/, '' #=> hllo3
Run Code Online (Sandbox Code Playgroud)

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

我需要像......

"héllo - there - 1".gsub /regex/ #=> héllo-there-1
Run Code Online (Sandbox Code Playgroud)

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

tri*_*eee 6

明显的答案似乎有效.

[^-\p{Alnum}]
Run Code Online (Sandbox Code Playgroud)

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

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