第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Python lex - 類型錯(cuò)誤:未知文本

Python lex - 類型錯(cuò)誤:未知文本

慕碼人8056858 2021-11-30 19:19:36
我正在嘗試編寫一個(gè)簡(jiǎn)單的 lex 解析器。目前的應(yīng)對(duì)方式是:from ply import lextokens = (      'COMMENT',      'OTHER'  )  t_COMMENT = r'^\#.*\n'  t_OTHER = r'^[^\#].*\n'  def t_error(t):      raise TypeError("Unknown text '%s'" % (t.value,))  lex.lex()lex.input(yaml)  for tok in iter(lex.token, None):      print repr(tok.type), repr(tok.value)但是無(wú)法解析簡(jiǎn)單的輸入文件:    # This is a real comment    #And this one also    #/*    # *    # *Variable de feeu    # */    ma_var: True    It is done, over, kaput    具有以下輸出:l'COMMENT' '# This is a real comment\n'Traceback (most recent call last):  File "parser_adoc.py", line 62, in <module>    main2()  File "parser_adoc.py", line 57, in main2    for tok in iter(lex.token, None):  File "/usr/lib/python2.7/site-packages/ply/lex.py", line 384, in token    newtok = self.lexerrorf(tok)  File "parser_adoc.py", line 44, in t_error    raise TypeError("Unknown text '%s'" % (t.value,))TypeError: Unknown text '#And this one also#/*# *# *Variable de feeu# */ma_var: Truethis is done'總之,我定義了 2 個(gè)正則表達(dá)式:一個(gè)以開頭的行 #一個(gè)用于不以開頭的行 #但它不起作用。我不明白我的正則表達(dá)式有什么問題。你能幫忙嗎?
查看完整描述

1 回答

?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊

在 python 正則表達(dá)式(PLY 使用的)中,^指的是字符串的開頭,而不是行的開頭,除非已設(shè)置多行模式。因此,由于您的兩個(gè)規(guī)則都以 開頭^,因此它們只能在第一行匹配。

您可以通過將正則表達(dá)式包裝在 中來(lái)解決此問題(?m:...),這將啟用多行模式,但這在這里甚至沒有必要。相反,您可以^從規(guī)則的開頭刪除,它會(huì)按您的意愿工作。由于您的兩個(gè)規(guī)則始終與整行匹配,因此下一個(gè)標(biāo)記將始終從該行的開頭開始 - 無(wú)需錨定它們。


查看完整回答
反對(duì) 回復(fù) 2021-11-30
  • 1 回答
  • 0 關(guān)注
  • 252 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)