[問題] 正則表達式-"\\."

看板R_Language作者 (舊舅舅)時間10年前 (2014/12/10 18:44), 編輯推噓3(3017)
留言20則, 4人參與, 最新討論串1/1
[軟體熟悉度]: 魯肉腳 [問題敘述]: coursera某篇在教strsplit的section: >names(cameraData) [1] "address" "direction" "street" "crossStreet" "intersection" "Location.1" 該篇教學內容主要目的是要透過strsplit將"Location.1"經由"."分離,因此要設正則 表達式: splitNames = strsplit(names(cameraData), "\\.") 我不懂的地方在於,為何"\\"是兩個而不是一個,當我只用一個"\"的時候,會出現以下 警告: >strsplit(names(cameraData), "\.") 錯誤: 在起始 ""\." 的字串中 '\.' 是無法辨識的跳脫字元 是否有好心大大可以解惑?謝謝 [關鍵字]: regular expression -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.61.216.119 ※ 文章網址: http://www.ptt.cc/bbs/R_Language/M.1418208280.A.A1D.html

12/10 18:54, , 1F
因為\是跳脫字元,所以要兩個才代表一個
12/10 18:54, 1F

12/10 19:07, , 2F
因為 \ 在正規表示式是有特別功能的,所以 \\ 才是 \。
12/10 19:07, 2F

12/12 23:33, , 3F
原來如此!謝謝!
12/12 23:33, 3F

12/19 16:25, , 4F
其實還是不太懂,\的功能不就是要讓.的特殊意義消失
12/19 16:25, 4F

12/19 16:26, , 5F
那如果用\讓\先消失其功能,那\\不就不能讓.消失其
12/19 16:26, 5F

12/19 16:26, , 6F
特殊作用了?
12/19 16:26, 6F

12/19 19:07, , 7F
沒全看明白你的意思。你可以舉一個例子?或自己測試?
12/19 19:07, 7F

12/20 00:13, , 8F
不曉得你有沒有試過把word中的表格,貼上記事本(notepad++)
12/20 00:13, 8F

12/20 00:14, , 9F
在notepad++中, 開啟檢視/特殊字元/顯示所有字元
12/20 00:14, 9F

12/20 00:14, , 10F
會看到 \t 表示類似定位點的分隔. 空一格的意思
12/20 00:14, 10F

12/20 00:22, , 11F
就有點像是word中的TAB鍵
12/20 00:22, 11F

12/20 00:23, , 12F
同樣, \n 則是用來表示換行. 印象中還有其他表示.
12/20 00:23, 12F

12/20 00:24, , 13F
這個規格在windows, Mac, Linux 系統各有相近又相異.
12/20 00:24, 13F

12/20 00:25, , 14F
也是如此, 在R中 要表示路徑的話. 都不會用 C:\ 而是 C:\\
12/20 00:25, 14F

12/20 00:26, , 15F
如前面個人講的, \\ 才會表示成一個 \
12/20 00:26, 15F

12/20 00:30, , 16F
應該是 \\ 才會表示成 /
12/20 00:30, 16F

12/29 21:37, , 17F
a大、E大,我似乎知道自己卡在哪了,也就是說,不管
12/29 21:37, 17F

12/29 21:38, , 18F
是不是在regex中,\本來就有意思了,但是在strsplit
12/29 21:38, 18F

12/29 21:39, , 19F
中,要餵給regex的必須要是\.,所以實際上要打\\.才
12/29 21:39, 19F

12/29 21:40, , 20F
會是\.,@@,超感謝兩位大大詳細說明!
12/29 21:40, 20F
文章代碼(AID): #1KY2GOeT (R_Language)
文章代碼(AID): #1KY2GOeT (R_Language)