0

gsub を使用して、空のスペースに置き換えよう"?"としています。"."

gsub(".", "")それがとの違いであることは理解していgsub(/./, "")ますが、それが何であるかはわかりません。誰か説明できますか?

また、gsub("?","")動作するようで、gsub(/?/,"")動作しません。どうすればgsub(/?/,"")機能しますか?

4

3 に答える 3

3

gsub("?", "")はリテラル?に一致しますが、正規表現gsub(/?/, "")を使用して一致を見つけます。また、正規表現では、前の文字が 0 回または 1 回存在する可能性があることを意味します。リテラルに一致させるには、エスケープする必要があります。??

gsub(/\?/, "")

gsubに関する ruby​​ のドキュメントも参照してください。

于 2012-11-04T08:08:01.467 に答える
2

最後に、上で述べたように、単なる文字列を表す/reg/場合は正規表現を表します。"str"あなたの目的は、文字列から?andを削除することです.。正規表現は仕事をします:

gsub(/[?.]/, '')

Ruby regexp の詳細については、こちらを参照してください。私の例では、/[abc]/単一の文字aまたはbまたはに一致しcます。

于 2012-11-04T08:26:50.630 に答える
1

前者は文字通り「?」を検索することです。後者は、指定された文字の 0 または 1 の出現を見つけることです。?は、 を使用して区切る正規表現に対して特別な意味を持ちます/

于 2012-11-04T08:07:03.930 に答える