2013-02-27 80 views
0

這是一個類項目的一部分。我使用Java構建了掃描Python代碼的掃描器。現在我必須將運行時間與Python掃描程序的Flex實現進行比較。如何正確匹配Python字符串文字與正則表達式?

所以我試圖匹配使用Flex的Python字符串文字。我正在嘗試將Python文檔中的string literal specification轉換爲C正則表達式。

這是我到目前爲止有:

[r|u|ur|R|U|UR|Ur|uR|b|B|br|Br|bR|BR]?('(([^\\]|[^\n]|[^'])|\\.)*'|\"(([^\\]|[^\n]|[^'])|\\.)*\"|'''([^\\]|\\.)*'''|\"\"\"([^\\]|\\.)*\"\"\")

但是,當我把它應用到下面的文字:

r'' lol 
r'' 

這兩條線相匹配。我希望它分開匹配每個r''並忽略引號外的任何內容。

回答

0

「除」\「或換行符或引號」之外的任何源字符轉換爲[^\\\n\']而不是我以前在上面寫過的,[^\\]|[^\n]|[^']

發現錯誤regex101.com。它有一個非常有用的正則表達式分析工具。