《Using OpenRefine》翻譯~18

上一篇:《Using OpenRefine》翻譯~17

錨符

有時候,你不是要表達有多少字符被匹配,而是想確定字符串哪個位置被匹配。這時候就可以使用錨符anchors。補字號^表示必須在開始匹配,美元符號$表示必須在最後匹配。(不要與方括號[]內的補字符^搞混,這個表示的是否定意義,這和括號外的^意義不一樣)。另外,\b可以指定匹配的區間的開始和結束。

• ^\d匹配開始爲一個數字。

• ^\d$匹配結束爲一個數字。

• ^\d.*\d$匹配開始和結束各爲一個數字。這個表達式的含義是:開始爲一個數字,0個或更多的任意字符(表達式中的點),結尾爲一個數字。如果我們使用^\d+$,則表示這是一個數字(任意長度)。

• \b\d{3}\b匹配至少含有三位的數字,因爲\b設定了區間。如果某個內容包含四位數字但是沒有三位數字,那麼將不匹配(如果移除\b,則會匹配)。

• ^\d{3}\b匹配開始爲三位數字,第四位爲非數字。

 

 

可選符

我們已經學會了如何指定可選內容。方括號可以讓我們選擇其中字符中的任意一個:[a-z123]匹配任意一個小寫字母或數字1或2或3。大多數情況,待選的內容可能不止一個字符,有可能爲多個字符。這種情況下,管道符”|”就派上用場了,其起的就是或操作的作用:

• glass|wood|steel 將匹配glass或者wood或者steel

• \d+|many|few 匹配任意數字或者many或者few

• N\d{5},|N\d{8}, 匹配以N開頭以“,”結尾,中間要麼是五位數要麼是八位數,其他不匹配(如中間是六位數就不匹配)

 

 

組符

最後需要介紹的就是組符groups,如果對一組字符應用數量符,就需要把他們用圓括號“( )”括起來:

• la+匹配了la,laa,laaa等等。而(la)+匹配了la,lala,lalala等等。

• analyz|se會匹配任意包含analyz或者se的文本。這可能並不是特別有用。而analy(z|s)e 會匹配包含analyze 或者 analyse。這裏其實等同於analy[zs]e,我們只需要對z和s二選一。而analyz(e|ing)將匹配包含analyze 或 analyzing.

• 因爲原括號有特殊意義,所以如果括號僅僅是普通字符,那麼我們就需要使用反斜槓指出。

 

 

下表列出了正則表達式中的一些特殊符號應用:



下一篇:《Using OpenRefine》翻譯~19


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章