試著在六次機會當中活下去(?)然後,提高你的正則式搜尋精準度。
如果沒看過前面文章,或是想問
為什麼第一次猜都是"SOARE" ?
第二次猜都是"HUMIC" ?
可以考慮先去這裡看看關於為什麼我起手式都打這兩串字。
在前一篇我們透過正則式
/^[^soarehumic]+$/igm
知道了,目前已知的2315個答案中(統計至2022.2.18),不存在沒有SOAREHUMIC這十個字元找不到的單詞。
但是! 人生就是會有這個 BUT。
理想上,當你拿到三個黃字或是四個黃字,甚至你今天夠幸運拿到五燈獎(年齡曝露),基本上十有八九都可以猜出個大概。
但如果只有1個或是2個黃/綠燈呢?
其實透過正則式我們也可以找出一些"SOAREHUMIC"只出現一兩個黃/綠燈的情境單字。
w*i*lly
p*ic*ky
b*i*lly
*mumm*y
fl*u*nk
g*umm*y
...
這些字也確實只有一到兩個字在"SOAREHUMIC"當中,如果你今天真的遇到了,也請別緊張,讓我們一步一步來,利用正則式找出可能度最高的答案。
(寫到這裡,我忽然覺得當初應該把標題取名叫玩WORDLE學正則式才對)
範例1-真相只有一個
Wordle 238 3/6
⬛⬛🟨🟩⬛
⬛🟨⬛⬛⬛
兩黃一綠的情境
[A]是正解但錯位
[R]是正解
[U]是正解但錯位
/^(?=.*a.*)(?=.*u.*)(?=[a-z]{5})[^soehmic][^soehumic][^soaehumic]r[^soehumic]+$/igm
由於只有R在第四字是正確的,AU是否有重覆我們不知道
丟去查詢正確答案
真相只有一個 “ULTRA”
範例2-50%/50%
Wordle 240 3/6
⬛⬛⬛⬛⬛
⬛⬛⬛🟩🟩
只有尾巴2綠找到正確解的情況
/^(?=[a-z]{5})[^soarehum]{3}ic$/igm
雖然上方正則式能找出2個答案 但這邊就比較靠運氣 機率50%/50%
Match 2358–2363 civic
Match 33066–3071 cynic
這邊有個要點要注意一下
當字詞c符合重複的字元時 綠色位置正確會優先顯示
wordle不會告訴你有重複的字元在其他地方
所以這時候你需要第三個參考目標
/^[^soarehumic]+$/igm
在前一篇文章我們已經透過(正則式:^[^soarehumic]+$)知道這十個字可以涵蓋所有已知答案,但是別忘記我們還有可猜測的所有答案。
當我們把^[^soarehumic]+$丟到上面網址搜尋後,發現還有四個可猜字可以使用。
18906–18911 flyby
22986–22991 gynny
23016–23021 gyppy
62262–62267 xylyl
稍做整理後
const unique_characters =
[…new Set(“flybygynnygyppyxylyl”.split(‘’))].join(‘’);
就可以得出 ‘BFGLNPXY’ 8個可猜單字
Match 2358–2363 civic
Match 33066–3071 cynic
由於 "V" 不存在這8個可猜單字當中,所以只有cynic是唯一正確答案。
驗證1-黃燈是叫你減速慢行不是踩油門
Wordle 242 3/6
⬛⬛🟨⬛⬛
⬛🟨⬛⬛🟨
242 也算是少見的三黃覆合式 而且答案難找
^(?=.*a.*)(?=.*u.*)(?=.*c.*)(?=[a-z]{5})[^shomire][^shomireu][^shomirea][^shomire][^shomirec]$
可能的答案後補
1998–2003 caput
2058–2063 caulk
然後比對 BFGLNPXY,T和K都不存在但P和L都存在,但答案也就兩個。
需要思考一下...
我們把原本的SOARE HUMIC考慮進去,CA是字首,
P|L存在於可猜測單字BFGLNPXY當中,是目前最有可能的單字,
但P|L也分散在兩個答案當中,所以難以判斷。
這時候我們該做的就是把已知的情報列出來
1.已知答案中沒有疊字的問題 至少已知答案當中都沒有疊字
2.欠缺U的真正位置
3.缺乏P|L存在與否的決定性證據
4.T|K皆不存在 BFGLNPXY 可猜測文字當中
需要更精準的猜測,修改正則式後拿去餵給可猜測列表
/^(?=.*u.*)(?=[a-z]{5})ca[^shomireaBFGLNPXY][^shomireBFGLNPXY][^shomirecBFGLNPXY]$/igm
可猜測列表顯示只有一個可猜
8706–8711 cauda
但我們在上方規則知道這次的單詞不可能有疊字
所以再次修改正則式拿掉BFGLNPXY看會產生多少可能
/^(?=.*u.*)(?=[a-z]{5})ca[^shomirea][^shomire][^shomirec]$/igm
可猜測的列表出來三個可猜測字詞 一個重覆的字詞
8166–8171 cajun
8478–8483 capul
8706–8711 cauda
8718–8723 cauld
第一個CAJUN,J不在BFGLNPXY當中,也不在已知答案中,所以不可能。
第二個CAPUL和可能答案CAPUT很接近,但P|L存在BFGLNPXY當中,P|L也分散在兩個答案當中,所以同時出現P|L的CAPUL不可能是答案。
第三個CAUDA重複出現在之前的可猜列表中,而且因為有疊字不可能。
第四個CAULD和可能答案CAULK最接近
且D不存在BFGLNPXY當中,L存在BFGLNPXY當中,
L同時存在於可能答案CAULK和可猜測的CAULD當中,
可知L在第四位,唯一第四位有L的可能答案只有一個。
所以答案是CAULK。
驗證2
Wordle 243 3/6
⬛🟩⬛⬛🟩
⬛⬛⬛⬛⬛
兩個正確位置的
/^(?=[a-z]{5})[^soarehumic]o[^soarehumic][^soarehumic]e$/igm
有3組可能的答案
3396–3401 dodge
6888–6893 lodge
7836–7841 noble
比對’BFGLNPXY’ 8個可猜單字
noble三個字NBL都在可猜單字當中 基本上可先忽略 於是剩下二選一
剩下DODGE和LODGE 雖然G都都存在BFGLNPXY當中
但是在缺少三個字的情況下G是有可能的
為了提高準確度
讓我們一樣把正則式丟到可猜測列表當中裡面 看能不能找到更多線索
6042–6047 bodge
--- 27 items…
62940–62945 yodle
這時候,由於可能性高達29個 實在無法當做參考
重看一下兩個最有可能的答案
字尾都是ODGE結尾
修改一下正則式 重新查詢正確答案
/^(?=[a-z]{5})[^soarehumicBFGLNPXY]odge$/igm
3396–3401 dodge
得出答案是有疊字D的DODGE
延伸問題: 試著用LODGE/NOBLE寫出你得搜尋正則式看看吧?
透過先假設答案是否有疊字,你所得出的正則式就會跟著改變。
到這裡,只要你前兩組字詞輸入完畢後正確運用正則式,
多思考和紀錄,把答案縮減到<5以內,
基本上你就能保持三次猜中的機率,
利用WORDLE和REGEX可以學習玩正則式,同時推理答案。
如果我的文章有幫助到你解決問題 請不要吝嗇掌聲
在左下角拍手的按鈕按下去 給我掌聲讓我有動力繼續寫下去