我正在使用搜索&替換編程分配。我是一名學生,我發現正則表達式文檔有點壓倒性(例如https://docs.python.org/2/library/re.html),所以我希望這裏有人能向我解釋如何完成我期待的內容。Python /正則表達式分割特定格式的返回字符串
我用正則表達式從我的文檔中獲取字符串列表。他們都看起來像這樣:
%@import fileName (regexStatement)
一個實際的例子:
%@import script_example.py (*out =(.|\n)*?return out)
現在,我不知道我怎麼可以拆分這些,所以我得到的文件名和regexStatements作爲單獨的字符串。我假設使用正則表達式或字符串拆分函數,但我不知道如何使它適用於%@ import fileName(regexstatement)的各種變體。例如,使用圓括號進行分割可能會碰到正則表達式語句的中間,或者如果括號是fileName的一部分。該作業沒有指定它是否應該只能從python文件導入,所以我不相信我可以在「正則表達式」語句之前使用「.py(」作爲分割點。類似於正則表達式「%@ import」來導入導入後的空白,「\ .. *」擊中fileName之後的空白。但我不確定如何擺脫包圍正則表達式的括號,或者如何使用它的所有實際正確分割字符串,所以我有一個變量存儲文件名和一個存儲regexStatement在我的列表中的每個條目。
非常感謝您的關注!
的文件名可以包含空格?如果不是,則不需要使用正則表達式。用maxsplit 2將空格分割爲空格,將第二部分作爲文件名,並將第三部分作爲正則表達式(修剪括號後)。 – BrenBarn 2014-10-18 18:14:22
@BrenBarn哦,那可以工作。我會試試看。從未想過maxsplit。 – user2875994 2014-10-18 18:15:15
@BrenBarn 你知道如何從匹配對象中獲取字符串嗎?我跑 'textToImport = re.search(regexStatement,fileName)' ,但我不知道如何從textToImport中獲取字符串(這只是一個matchobject,並且文檔沒有說遠我所看到的)。 – user2875994 2014-10-18 19:18:21