前幾天看到Stylus插件上的樣式列表里多出來(lái)一個(gè)Jupyter Notebook的樣式杂拨,回想起自己之前給Jupyter寫過(guò)一個(gè)CSS樣式坠韩,可是怎么就失效了呢扒怖?仔細(xì)一看罗侯,原來(lái)是因?yàn)镴upyter Notebook每次調(diào)用的localhost端口不一樣。當(dāng)時(shí)為了偷懶月杉,直接用了Stylus的網(wǎng)址前綴判斷方式來(lái)判斷是否是Jupyter Notebook的頁(yè)面刃跛。這樣一來(lái),只能用正則表達(dá)式改寫一下了苛萎。
其實(shí)桨昙,這并不是我第一次想要研究一下正則表達(dá)式的寫法。但是腌歉,可能因?yàn)楹退鼪](méi)有緣分吧蛙酪,每次都是看一眼就頭腦發(fā)暈,不知道那些花里胡哨的符號(hào)代表什么翘盖。這次總算解決了(桂塞?)入門的問(wèn)題。
http:\/\/localhost:888(\d?)?([^ ]*)
上面就是一個(gè)正則表達(dá)式馍驯。其中沒(méi)有被( )
包圍的內(nèi)容阁危,是需要完全相符的。而( )
中的內(nèi)容汰瘫,則是需要進(jìn)行正則匹配的狂打。
接下來(lái),看一眼Jupyter Notebook的網(wǎng)址長(zhǎng)什么樣:
http://localhost:8889/notebooks/Codes/Geo/Jupyter/01%20CitiBike.ipynb
為了匹配網(wǎng)址混弥,可以將它拆解為四部分:
http://localhost:
趴乡、8889
、/notebooks/
、/Codes/Geo/Jupyter/01%20CitiBike.ipynb
第一個(gè)部分浙宜,是不會(huì)變化的開(kāi)頭官辽;第二部分蛹磺,是端口號(hào)粟瞬,也就是一直在變的東西;第三部分萤捆,應(yīng)該是Jupyter Notebook的一個(gè)提示符(裙品?),畢竟用到localhost的不只有Jupyter一個(gè)俗或;第四部分市怎,就是文件目錄了。
不會(huì)變化的部分辛慰,在正則表達(dá)式中区匠,可以直接輸入。/
應(yīng)該需要轉(zhuǎn)義一下帅腌。
需要匹配的變化部分驰弄,就要用到哪些晃眼睛的符號(hào)了。
- 對(duì)于第二部分這里出現(xiàn)的是一位數(shù)字速客,而數(shù)字可以用
\d
來(lái)表示戚篙,后面的?
則代表前面的字符最多只能出現(xiàn)一次(0次或1次)。 - 對(duì)于第四部分溺职,這里是一長(zhǎng)串文件路徑岔擂,用
[^]
來(lái)排除一些符號(hào),這個(gè)例子中浪耘,中括號(hào)里有空格乱灵,表示匹配不包括空格的任何字符序列。
基本上就這樣七冲,可算是把網(wǎng)址匹配出來(lái)了痛倚,(不知道下一次研究正則表達(dá)式是什么時(shí)候。癞埠。