2017-08-10 16 views
0

似たような質問があります。しかし、私はまさに私のような言葉を見つけることができません。私は理解していないか、正規表現を研究しているので、私はこの質問をする必要があります。アポストロフィを除くすべての特殊文字を削除します。

私は上記の(タイトルを)やりたいする方法があります:

def alternate_words(string) 
    x = string.each {|char| char.gsub!(/[^0-9A-Za-z]/, '')} 
end 

この正規表現は、ほとんどの特殊文字のために働くことを証明しています。しかし、それはアポストロフィを削除し、私は私のものを保ちたい。どうやってこれを変えることができますか?

+3

'/ [^ 0-9A-ZA-Z '] /'読んでもらうために –

+1

時間:)のhttp://www.regular- expressions.info/charclass.html –

+1

そうしたくない理由がない限り、英語中心の '0-9A-Za-z'ではなく、POSIXブラケット式または' \ p {'}構造体の使用を検討する必要があります。ここで '/ [^ [:alnum:] '] /'または '/ [^ \ p {Alnum}'] /'となります。 (ドキュメント[Regexp](http://ruby-doc.org/core-2.4.0/Regexp.html)で検索してください。)複数の言語をサポートするためにアプリケーションを移植する必要がある場合は、 。 –

答えて

3

だけで否定文字クラスにアポストロフィを追加します。

def alternate_words(string) 
    x = string.each {|char| char.gsub!(/[^0-9A-Za-z']/, '')} 
    #           ---^--- 
end 
関連する問題