作者a6409tw (爆蠑螈)
看板R_Language
標題[問題] 想請問在使用str_subset時\\.的功能
時間Mon Feb 26 23:18:42 2018
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
最近正在練習使用R來爬蟲
但一直無法理解
str_subset(x,"\\.html")中\\.
我的理解是
左邊的\將右邊的\功能跳脫
使得結果變成在x中尋找符合\.html的元素
可是這樣.的功能並沒有被跳脫
一直都想不通
另外如果將程式碼改成
str_subset(x,".html")竟然跟
str_subset(x,"\\.html")的結果一樣
str_subset(x,"\\.html")的結果一樣
我已經徹底混亂了
拜託各位大大了QQ
[環境敘述]:
Win10 64bit Version 1.1.383
[關鍵字]:
正則表示法、爬蟲
選擇性,也許未來有用
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.177.147
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1519658324.A.741.html
1F:→ celestialgod: 你試試看x 多放一個xhtml的元素,看這個會不會被抓02/26 23:24
→ celestialgod: 到 02/26 23:24
→ celestialgod: 到 02/26 23:24
2F:→ celestialgod: .在regex裡面被當作萬用字元,不是原本的.02/26 23:25
God大,我照你說的在x裡面的html前面加個英文字後
使用str_subset(x,”\\.html”)抓不到任何東西
但是str_subset(x,”.html”)卻可以
意思是”\\.html”搜尋x裡有.html的東西
但我還是無法理解為什麼QQ
※ 編輯: a6409tw (140.112.25.99), 02/26/2018 23:55:20
※ 編輯: a6409tw (140.112.25.99), 02/26/2018 23:56:55
3F:→ celestialgod: 請查regex02/27 00:08
好的謝謝您Q
4F:→ cywhale: \\. 就代表你真的要找dot 這個字符 而只有dot在regex當中02/27 00:23
5F:→ cywhale: 代表可以match任何字元 所以.html 可以match xhtml02/27 00:24
Whale大我想問為什麼\\.是找真正dot的字符
而不是不是用\.呢
我想不通其中的道理Q
※ 編輯: a6409tw (36.226.14.91), 02/27/2018 01:05:14
6F:→ cywhale: R中'\' blackslash本身就是特殊字符 所以需要'\\'escape 02/27 01:11
7F:→ cywhale: backslash 打錯字 02/27 01:12
8F:→ eric500g: 左邊\是strings的跳脫,右邊\是regex的跳脫 02/27 12:26