[Python] 如何取出字串中的選項

Posted in :

這篇文章目是透過程式取得「驗證問題」裡的選項,再用程式來自動把選項用來回答問題。

厲害的人都是使用 Regular Expression. 讓我們來看看範例:

請問下列哪張專輯為___出道專輯?(1A)飛(2B)礫(3C)樂(請以半形輸入法作答,大小寫需要一模一樣,範例:1A)

要取得上面句子裡的選項,可以使用:

re.findall('([\w]+)', text))

這樣子就結束了,但很多人看不懂或不知道如何使用,參考看看更多的範例

# split all string 
>>> source = "Hello World max everyday"
>>> re.findall('[\w]+', source)
['Hello', 'World', 'max', 'everyday']

input = """"<person>John</person>went to<location>London</location>""" 
import re
print(re.findall("<person>(.*?)</person>", input)) print(re.findall("<location>(.*?)</location>", input))

上面執行結果是 [‘John’] 和 [‘London’]


上面是一般的「小菜」,但出問題的人又不是呆瓜,他們也不想被機器人拿來猜,所以他們進化問題的格式:

基本入門的題型:

請問下列哪張專輯為林俊傑出道專輯?(1A)飛行者(2B)礫行者(3C)樂行者(請以半形輸入法作答,大小寫需要一模一樣,範例:1A)

說明:上面的答案是 3C

以下哪個「不是」正確的林俊傑與其他藝人合唱的歌曲組合?(選項為歌名/合作藝人 ,請以半形輸入法作答選項,大小寫需要一模一樣,範例:jju) 選項: (jjz)I am alive/Jason Mraz (jjy)友人說/張懷秋 (jjx)豆漿油條/A-Sa蔡卓妍 (jjw)黑暗騎士/五月天阿信 (jjv)手心的薔薇/G.E.M鄧紫棋

說明:上面是 2/15 的問題,答案是 jjx。
附註:2/14 的問題:以下哪個「不是」正確的林俊傑與其他藝人合唱的歌曲組合?(選項為歌名/合作藝人 ,請以半形輸入法作答選項,大小寫需要一模一樣,範例:jju) 選項: (jja)小酒窩/A-Sa蔡卓妍 (jjb)被風吹過的夏天/金莎 (jjc)友人說/張懷秋 (jjd)全面開戰/五月天阿信 (jje)小說/阿杜


有時候會問開放性的問題,題目裡沒有選項:

請填入您所購買的演出日期(4位半形數字)
請以半形數字輸入您所購買節目的演出日期,如演出為2018/1/12,請輸入20180112

請以半形數字輸入您所購買節目的演出日期,如演出日期為2019/03/30,請輸入20190330。Please enter the date of the show you purchased in halfwidth form.For example: the date of the show is 2019/03/30,please enter 20190330.


回答指定文字:

請回答下列問題,請在下方空格輸入DELIGHT(請以半形輸入法作答,大小寫需要一模一樣)

王力宏:

請問《龍的傳人2060》演唱會是以下哪位藝人的演出?(請以半形輸入法作答,大小寫需要一模一樣,範例:B2)A1.周杰倫 B2.林俊傑 C3.張學友 D4.王力宏

王力宏何時發行第一張專輯?(請以半形輸入法作答,大小寫需要一模一樣,範例:B2) A1.1985 B2.2005 C3.2015 D4.1995

被要求連括號都輸入:

朴寶劍三月以歌手出道的日期和單曲名為? Answer the single’s name & the debut date. *以半形輸入,大小寫/符號須都相同。例:(E1) Please use the same format given in the options.ex:(E1) (A1)20/Bloomin'(B1)2/Blossom(C1)2/Bloomin'(D1)20/Blossom

《2019 LOVELYZ CONCERT in TAIPEI》

以下哪位不是LOVELYZ成員? (請以半形輸入選項內的英文及數字,大小寫須符合),範例:E5e。 (A1a)智愛 (B2b)美珠 (C3c)JON (D4d)叡仁

RAVI 3rd REAL-LIVE [R.OOK BOOK] IN TAIPEI

題請問此次 RAVI的SOLO專輯名稱為?(請以半形輸入法作答,大小寫需要一模一樣,範例:Tt) Aa [ BOOK] 、 Bb [OOK BOOK.R] 、 Cc [R.OOK BOOK] 、 Dd [OOK R. BOOK]

請問下列哪個選項皆為河成雲的創作歌曲? Aa) Don’t Forget、Candle Bb) Don’t Forget、Forever+1 Cc) Don’t Forget、Flowerbomb Dd) Don’t Forget、One Love 請以半形輸入,大小寫含括號需一模一樣 【範例:答案為B需填入Bb)】

請問今年是the GazettE的第幾週年呢?請輸入選項的2個半形英文大寫字母。TA.15週年 WB.16週年 LC.17週年 the GazettEは今年何周年?次の選択肢から半角英字2文字をご入力ください。TA.15周年 WB.16周年 LC.17周年

變動長度問題:

Epik High有多少成員?(How many members in Epik High?) A-3 B-333 C-33333(請以半形輸入法作答,是完整且一模一樣的英文/號碼/符號,範例:E-55)

同時問2個問題:
下面問題的答案是 C2。

Dara是橙色,朴春綠色,CL金色以及敏智是紫色。根據她們不同喜好所訂製的麥克風,都代表著她們獨一無二的特色。

(Q1、Q2答案請以半形大寫並依題目順序作答,範例:E5。) Q1.朴春此次新歌《4:44》與下列哪位歌手合作? A.AB6IX 李大輝、B.MAMAMOO 華莎、C.MAMAMOO 輝人、D.Dara。 Q2.請問朴春的麥克風是什麼顏色的?1.橙色 2.綠色 3.金色 4.紫色。

開放性的問題:

請問本演唱會的表演團體名稱中,唯一小寫的英文字母為何?(請以半形輸入該單一小寫英文字母即可)
這個要猜也行,猜26次一定猜的到。團名是:GARNiDELiA,唯一小寫是 i

相關文章:

[Python] RegEx
http://stackoverflow.max-everyday.com/2019/04/python-regex/

[Python] 如何判斷字串中的語言
http://stackoverflow.max-everyday.com/2019/04/python-regex-detect-language/

[Python] 结巴中文分词
https://stackoverflow.max-everyday.com/2019/05/jieba/

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *