頭頁 新教典正規表達式查詢法舉例
文章
取消

新教典正規表達式查詢法舉例

新版教典(教育部臺灣閩南語常用詞辭典)雄雄上線,逐家耍甲píng--過!

以下舉例新教典的超專業級功能,使用「正規表達式」來做查詢(我共伊叫做「超專業」就是講這毋是普通使用者耍有路來的 😅)。完全毋知影啥物是「正規表達式」的讀者,若有興趣,會使得先參考新教典的使用說明。我以下的用例有超出伊說明內底所提起的符號,我會另外解說:

欲查詢啥咧?先講背景智識:

咱知影台語第五、七、八聲的清聲母字,大部份是對漢語中古音的全濁聲母變出來的。漢語中古音干焦有平、上、去、入四聲調,後來每一種聲調進一步分化出「陰」、「陽」兩種調類。台語第一聲到第四聲就是「陰平、陰上、陰去、陰入」,台語第五聲到第八聲就是「陽平、陽上、陽去、陽入」。(台語一般腔無分陰上佮陽上,鹿港腔有分。)

伊分化的起頭,主要就是濁聲母的字發生清化現象,按呢是毋是就佮本底的清聲母字變做仝音去矣?佳哉,遮的濁聲母清化的字佮原底的清聲母字佇聲調的層次也發生差異,所以猶原有法度做區別。聲韻學者就共舊底清聲母的調叫做「陰」的,濁聲母清化了後的調叫做「陽」的。

但是塞音佮塞擦音濁音(也就是 b / d / g / dz)清化了後,台語是變做無送氣的(就是 p / t / k / ts)抑是有送氣的(就是 ph / th / kh / tsh)咧?

中古漢語濁聲母清化了後,對應到現代客家話,主要攏是送氣聲母。但是台語就無的確,總是大部份是變做無送氣的(若送氣的可能是後來進一步閣變的)。咱通統計教典所收,第五、第七、第八聲的無送氣清聲母的字佮送氣清聲母的字的數量比例,就會使得顯明這點。

教典陽調類送氣聲母(ph / th / kh / tsh)的單字,「搜尋」欄內按呢拍:

1
^([ptk]|ts)h[^ ]+[578]$

(註:其中个 [^ ] 會使簡單拍做 \S 下面的例也仝款)

總共揣出 279 筆單字資料(注意,伊會連「又唸作」欄的音也做伙查,算在內)。

閣來,教典陽調類無送氣聲母(p / t / k / ts)的字,「搜尋」欄內按呢拍:

1
^([ptk]|ts)(?!h)[^ ]+[578]$

總共得著 828 筆單字資料。

比例:279/828 大約是 33.6%,所以教典陽調類單字當中,送氣聲母的字數是無送氣聲母的字數的三份一[sann-hūn-tsi̍t]爾。

解說以上搜揣所用的正規表達式:(以下將「正規表達式」用英文簡稱 regex 表示)

^([ptk]|ts)h[^ ]+[578]$

  • 其中上頭前的 ^ 就是指符合目標字串的上頭前, 上後尾个 $ 就是符合目標字串的上尾後,也就是咱無愛咱个 regex 干焦符合目標字串个一部份(substring)爾爾,是愛頭至尾攏符合。

  • [ptk] 用中括號共 ptk 包起來,意思是指符合ptk其中任何一个聲母。

  • [ptk]|ts 符合ptk其中任何一个單字母聲母,或者是符合 ts 這个雙字母聲母。| 是 ‘or’(或者是)的意思。

  • ([ptk]|ts) 前後加小括號 ( ) 是欲做分界,予程式知影彼个 | (or) 的範圍到佗位。

  • h 閣來,目標字串愛有 ‘h’ 字母,也就是咱欲愛的送氣音。

  • [^ ] 頭前有用著中括號來包 ptk,也就是 [ptk], 彼是欲揣有符合 ptk 當中的任何一个字母攏會使,但是遮是 [^ ], 中括號內先出現 ^ 變做是「否定」用法,是指「無愛有」^ 後壁的字母或是啥符號,佇遮,^ 的後壁是一个 space(半形空格), 這佇新教典的查詢說明的正規表達式用法有提起,是音節間的分隔號。 新教典網站的設計,用 regex 搜揣的時,多音節中間無用連字符分隔, 是用空格來分隔。所以 [^ ] 的意思是指「無愛有空格」,意思等一是 「愛佇仝一个音節內」。咱干焦欲愛揣出單音節詞目,無愛包含多音節詞目。 其實這會使簡單用 \S 來表示,不而過,新教典使用說明無提起這組符號。

  • [^ ]+ 閣來,加一个 + 號,是指加號頭前的字母,至少愛出現一擺以上, 也就是講「仝一个音節內的字母愛出現至少一个以上」。咱頭前有先比對聲母 ph、th、kh、tsh 矣,但是干焦遮的字母無才調成做一个完整的音節, 所以就愛閣有 [^ ]+ 來符合韻母彼部份的字母。

  • [578] 聲母、韻母攏有矣,閣來著愛指定聲調,第一至第九聲(教典無用著第六聲) 攏愛拍數字 19。遮是指定第五、七、八聲其中任何一聲調攏是咱欲愛的。

以上是陽調類送氣聲母單音節字的查詢 regex 解說。若是欲揣無送氣的, 就將其中的 h 改做 (!h),意思是「siam看覓,咱無愛彼的所在出現 h」。

本文章以 CC BY-NC-ND 4.0 授權

2023-07-01日記

2023-07-02日記

Comments powered by Disqus.