看到南一出版社有在 Google Drive 中分享課本與習作的 PDF 檔,趕緊把英文課本的附錄下載並複製單字片語來用。是說我前幾天才自己用鍵盤把單字敲完而已,早知道應該先上網看看有沒有電子檔的。
會想複製課本附錄 PDF 中的內容,主要是之前用查網路字典方式製作的 Anki 單字牌集,裡面的例句有時太難,雖然可以讓孩子多學一點,終究還是不小的負擔。既然有課本的,複習為主要目的,當然是以先課本的例句優先。
南一附錄複製下來的文字,格式上大致是有規則的,大概也就手動調整了幾行,刪掉一些頁碼跟小標題字,它就變成一行單字(片語),一行例句的格式了。像這樣:
1 Tuesday [`tjuzde] n. 星期二(= Tue.)
We don’t have English class on Tuesdays.
2 meat-free [mit`fri] adj. 無肉的;素食的
Today is meat-free day at my school.
3 Monday [`mʌnde] n. 星期一(= Mon.)
Let’s go out for dinner on Monday night.
4 vegetable [`vɛdʒətəbỊ] n. 蔬菜
Jerry and his brother don’t like vegetables.
本來還在想,接下來是要用 PHP ,還是 Python ,將它們兩行、兩行,轉成一行以 Tab 為分隔的字串,方便我貼到 Google 試算表中使用。因為資料就貼在 Notepad++,就試著用「規則運算式」來搜尋。哈!Notepad++ 就有「全部取代」的功能,乾脆一次到位就好,根本連程式都不用寫了啦!
用 Notepad++ 的規則運算式轉換格式 |
因為南一附錄中的單字片語文字的格式,依序可以解析為:
- 數字、空白
- 英文
- [音標]
- 解譯
- 換行字元(\r\n)
- 第二行例句、換行字元(\r\n)
所以用了底下的規則運算式來搜尋:
^\d+\s+([^\[]+)(\[[^\]]*\])([^\r\n]*)\r\n([^\r\n]*)$
稍微分解一下:
- ^\d+\s+
- ([^\[]+)
- (\[[^\]]*\])
- ([^\r\n]*)
- \r\n
- ([^\r\n]*)$
對照一下在做什麼:
- 在開頭找出數字和空白。
- 一直找,找出不是[的。(規則有加括號,所以此部份為搜尋結果的「 \1」)。
- [再加上接著不是]的,最後再加上]。(規則有加括號,所以此部份為搜尋結果的「 \2」)。
- 一直找,找出不是 \r\n 的。(規則有加括號,所以此部份為搜尋結果的「 \3」)。
- 換行字元 \r\n。
- 一直找,找出不是 \r\n 的,到行末結束。(規則有加括號,所以此部份為搜尋結果的「 \4」)。
上面「規則運算式」找到的,就用下面的規則來「全部取代」:
\1\t\2\t\3\t\4
也就是用前面「規則運算式」找到的結果 \1、\2、\3、\4 之間都加上 Tab 字元 \t。因為最後的結果 \4 本身就有換行字元,所以執行完「全部取代」,就變一行行單字片語加例句了;而每一行有以 Tab 字元分隔為四個欄位。
Notepad++ 取代的結果 |
這樣子可以順利地貼到 Google 試算表中。
貼到試算表中的結果 |
因為我在不同課間有加上空白行,而它不會屬於被取代的對象,這樣一來,貼到試算表後,我在為不同課加上標籤欄位時,可以很清楚;最後再刪去分隔課別用的五個空白行,就大功告成了。
只能說「規則運算式」(Regular Expression)真是好用!
沒有留言:
張貼留言