我想从字符串中删除所有非字母数字字符。除了空间,还有一些德国人物。
实施例
regexp = "mönchengladbach."
regexp.gsub(/[^0-9a-z \-]/i, '')
=> mnchengladbach
我需要这个:
=> mönchengladbach
它也不应取代其他德语字符,例如:
ä ö ü ß
谢谢!
编辑:
只是我没有正确测试。 IRB不接受特殊字符。这对我有用:
regexp.gsub(/[^0-9a-z \-äüöß]/i, '')
答案 0 :(得分:3)
要删除所有不是字母或空格的内容,您可以使用:
str.gsub(/[^\p{L}\s]+/, '')
我在这里使用一个否定的字符类,[^\p{L}\s]
表示所有不是字母(用你想要的所有语言)或白色字符(空格,标签,换行符)
\p{L}
是字母的unicode字符类。
您可以轻松添加要保留的其他字符,例如-
:
str.gsub(/[^\p{L}\s-]+/, '')
示例脚本:
# encoding: UTF-8
str = "mönchengladbach."
str = str.gsub(/[^\p{L}\s]+/, '#')
puts str
答案 1 :(得分:0)
我想你想要:
/[^[:alnum:] -]/
请注意,//i
不是必需的,在-
[]