2016-06-15 7 views
-1

でワイルドカード:使用して、私はこのような何かをしたいと思いますGSUB

"String with text and replaceText and replaceText and so on... " 

になり

"String with text and $abc$ and $def$ and so on... ".gsub("$*$", "replaceText") 

しかし、私はわかりませんどのようにここに*作品のようなワイルドカード。

+0

それはワイルドカードではありません。それはそのようには機能しません。 – sawa

答えて

4

あなたがエスケープする必要があります

"String with text and $abc$ and $def$ and so on... ".gsub(/\$\w+\$/, "replaceText") 
#=> "String with text and replaceText and replaceText and so on... " 

は覚えておいてください。この目的のために正規表現を使用することができます$

1

ただ好奇心から:1つはより多くのデリミタを持っているかどうか(do彼女はback-referencesを使用する場合があります)、唯一のサインリャル:内部[]$*どちらをエスケープする必要はありません

str = "String with text and $abc$ and *def* and so on... " 
str.gsub(/(?<delim>[$*]).*?\k<delim>/, "replaceText") 
#⇒ "String with text and replaceText and replaceText and so on... " 

注)

+0

これは "ä"や "ü"のような特別なキャラクターでも動作します – kernification

+0

発音記号を持つヨーロッパのアルファベットの文字でどのように使われるのか分かりません。 – mudasobwa

関連する問題