我有一個python字符串,我需要刪除括號。標準方法是使用text = re.sub(r'\([^)]*\)', '', text)
,因此括號內的內容將被刪除。如何刪除多層圓括號中的文本python
但是,我剛剛發現一個看起來像(Data with in (Boo) And good luck)
的字符串。隨着我使用的正則表達式,它仍然有And good luck)
部分。我知道我可以掃描整個字符串並嘗試保留一個數字爲(
和)
的計數器,並且當數字平衡時,索引(
和)
的位置並刪除中間的內容,但是會有更好還是更清晰的方式爲了做到這一點?它不需要是正則表達式,無論它會工作是多麼偉大,謝謝。
有人問了那麼這裏預期的結果是什麼,我期待:
Hi this is a test (a b (c d) e) sentence
更換後我希望它是Hi this is a test sentence
,而不是Hi this is a test e) sentence
這是不可能的re模塊做到這一點,但你可以用正則表達式模塊,允許遞歸做到這一點。 https://pypi.python.org/pypi/regex –
在最壞的情況下,如果你建立一個模式來匹配最內層的括號'\([^()] * \),那麼你可以用re模塊來完成它,如果你循環替換,直到沒有任何東西可以替換。但它不是一個非常優雅的方式,因爲你需要多次解析字符串。 –
你對非正則表達式解決方案開放嗎? – Dan