作者oldjojotenya (旧舅舅)
看板R_Language
标题[问题] 正则表达式-"\\."
时间Wed Dec 10 18:44:38 2014
[软体熟悉度]:
鲁肉脚
[问题叙述]:
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://webptt.com/cn.aspx?n=bbs/R_Language/M.1418208280.A.A1D.html
1F:→ Wush978: 因为\是跳脱字元,所以要两个才代表一个 12/10 18:54
2F:→ andrew43: 因为 \ 在正规表示式是有特别功能的,所以 \\ 才是 \。 12/10 19:07
3F:→ oldjojotenya: 原来如此!谢谢! 12/12 23:33
4F:→ oldjojotenya: 其实还是不太懂,\的功能不就是要让.的特殊意义消失 12/19 16:25
5F:→ oldjojotenya: 那如果用\让\先消失其功能,那\\不就不能让.消失其 12/19 16:26
6F:→ oldjojotenya: 特殊作用了? 12/19 16:26
7F:→ andrew43: 没全看明白你的意思。你可以举一个例子?或自己测试? 12/19 19:07
8F:推 Edster: 不晓得你有没有试过把word中的表格,贴上记事本(notepad++) 12/20 00:13
9F:→ Edster: 在notepad++中, 开启检视/特殊字元/显示所有字元 12/20 00:14
10F:→ Edster: 会看到 \t 表示类似定位点的分隔. 空一格的意思 12/20 00:14
11F:推 Edster: 就有点像是word中的TAB键 12/20 00:22
12F:→ Edster: 同样, \n 则是用来表示换行. 印象中还有其他表示. 12/20 00:23
13F:→ Edster: 这个规格在windows, Mac, Linux 系统各有相近又相异. 12/20 00:24
14F:→ Edster: 也是如此, 在R中 要表示路径的话. 都不会用 C:\ 而是 C:\\ 12/20 00:25
15F:→ Edster: 如前面个人讲的, \\ 才会表示成一个 \ 12/20 00:26
16F:推 Edster: 应该是 \\ 才会表示成 / 12/20 00:30
17F:→ oldjojotenya: a大、E大,我似乎知道自己卡在哪了,也就是说,不管 12/29 21:37
18F:→ oldjojotenya: 是不是在regex中,\本来就有意思了,但是在strsplit 12/29 21:38
19F:→ oldjojotenya: 中,要喂给regex的必须要是\.,所以实际上要打\\.才 12/29 21:39
20F:→ oldjojotenya: 会是\.,@@,超感谢两位大大详细说明! 12/29 21:40