我想使用GSUB空的空間,以取代"?"
和"."
GSUB之間的區別。就是使用/或「?
我意識到是gsub(".", "")
和gsub(/./, "")
之間的差異,但我不知道它是什麼。有人能解釋一下嗎?
此外,gsub("?","")
似乎工作,並gsub(/?/,"")
不起作用。 我們怎樣才能使gsub(/?/,"")
工作?
我想使用GSUB空的空間,以取代"?"
和"."
GSUB之間的區別。就是使用/或「?
我意識到是gsub(".", "")
和gsub(/./, "")
之間的差異,但我不知道它是什麼。有人能解釋一下嗎?
此外,gsub("?","")
似乎工作,並gsub(/?/,"")
不起作用。 我們怎樣才能使gsub(/?/,"")
工作?
最後按照上面提到的/reg/
代表的正則表達式時"str"
代表只是一個字符串。您的目標是從字符串中刪除?
和.
。正則表達式將做的工作:
gsub(/[?.]/, '')
你可以閱讀更多關於Ruby的正則表達式here。在我的示例中,/[abc]/
將匹配單個字符a
或b
或c
。
前者是字面上找到「?」字和替換Ť下襬,而後者是找出一個給定字符的0或1的情況。 ?
對於使用/
劃分的正則表達式有特殊的含義。
gsub("?", "")
匹配文字?
,而gsub(/?/, "")
使用regular expressions找到一個匹配項。在正則表達式中,?
表示前一個字符可以出現0或1次。爲了匹配文字?
,你必須escapte它:
gsub(/\?/, "")
又見Ruby文檔約gsub
曾幾何時(Ruby 1.6),沒有區別:字符串模式自動轉換爲正則表達式。不同之處在於Ruby 1.8。 –