更新於 2024/11/02閱讀時間約 5 分鐘

用Regular expression製作單字卡

起心動念

最近想要把英文重新好好的學習,雖然很多人都會說背單字與英文好不好沒有絕對的相關,但是單字量嚴重不足,想說的話也是無法好好表述的。

根據一些學習英文的資料,發現自己只會單純的背誦單字來應付考試,在表述上總是碰到嚴重的瓶頸,想要能好好地說出來、寫出來,完整的表述能力的培養是需要透過「上下文」的形式來達成的,那我就在想,能不能做一個句子版的克漏字卡片呢?

初步想,這個卡片要有英文句子、挖掉的單字、中文翻譯、提示、解答,當然也會關連到一個單字庫,其他細節就依照需求再一一的添加。

克漏字的設計

我們想以前在寫克漏字的時候,常見的是有字首、字尾的提示,例如:fireman 會以「f_____n」的方式顯示,但是單字不是都一樣長,且每個字的字首、字尾也都不同,那我就想要用公式撰寫這個提示,但要怎麼製作呢?

這時我就想起有一個對比資料的方法「Regular expression」,以下簡稱為「RE」,透過 RE 與其他的函數來製作這個克漏字的單字卡片。

另外要搭配函數「slice」,這個函數最多人會在製作進度條的時候使用,這裡因為要把單字切開,所以我也會用到這個函數。

詳細的資訊網路上有很多,也有教程,我就單純做個紀錄分享相關的資訊。

slice(prop("Name"), 0, 1)    // 留下字首
slice(prop("Name"), -1) // 留下字尾

replaceAll(prop("Name"), "[A-z ]", "_") // 將字母全換成"_ "
replaceAll(prop("Name"), "[^AaEeIiOoUu ]", "_") // 提示母音

//字首 + ______ + 字尾
slice(prop("Name"), 0, 1) + replaceAll(slice(prop("Name"), 1, -1), "[A-z ]", "_") + slice(prop("Name"), -1)

整體的製作效果,可以參考 Notion中的「克漏字測試資料」。

最後要再加上「解答」與「提示」的勾選,並把這個判斷條件加入公式之中,效果如下圖。

間隔時間複習

要做到如「Anki」的效果,就需要把時間與困難程度的概念加入,這裡有點懶得詳細說明,不過寫下我有設置的欄位如下,有興趣的小夥伴們可以再自己試試看。

  • 難度:選項
  • 創建時間:Created time
  • 更新時間:Last edited time
  • 重複天數:公式 → 對應難度選擇幾天後再次複習
  • 下次複習時間:公式 → 對應重複天數將「天數」與更新時間相加

如果你不想要設置得這麼複雜,可以參考以前寫過的資料 Flashcard

使用心得

首先我必須聲明,很多模板我都會不斷的調整,這個模板也是這樣的。這篇記錄是實際使用並進行調整後的結果,也就是目前我想到的最佳解而寫的紀錄。希望大家能明白,即使是自己為自己量身打造的模板,也是會不斷地調整的,畢竟官方也一直有再出新的功能,需要與時俱進嘛~

抒發這些是因為有一些新手同好們會有反應,說模板用的不是很順手,或是訴說著有哪些部分其他人是怎麼設計的,那如果覺得其他人的比較好用,其實可以直接參考其他人製作的模板,我表示尊重,也感謝告知還有其他的設計方法。

另外,我分享模板是因為我願意分享,不代表有義務分享。提供免費的模板雖然要拼拼湊湊,但是可以直接拿去改一改就能使用,也盡量單純化(可能是因為我懶得做完整?!),大家可以把小功能複製之後,加幾個 Relation 到自己常用的筆記中就可以了。

言歸正傳,現在每天我都會看一篇英文文章,且這個網站也有朗讀的音檔,我就跟著聽幾遍、查單字。個人覺得最困難的不是製作模板的部分,而是之後的導入資料工程最麻煩。

做完這個模板後,我也把自己每天寫日誌的模板加了新的欄位,記錄每天複習的狀況~~希望大家都能一起進步呀 ~ 學海無涯,唯勤是岸。

PS.我沒有做自動化統計到日誌的部分,因為這樣我的日誌那兒關聯的資料會太多,擔心會跑得太慢😅,所以就先手動輸入今天複習多少張卡片啦~~~~~

方法也很簡單,開一個 Table View,然後設置一個篩選器,選擇更新時間為今天的卡片,欄位下方選擇 Count all,這樣就設置完成啦~

模板

大家可以跟著上方的說明嘗試製作模板,但如果你怕麻煩,歡迎到我的商城購入喔~~❤

參考資料

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.