2013-08-19 17 views
4

我使用re.sub()從字符串中刪除顏色控制代碼(IRC),但它每次都失敗。這是我使用的是什麼:Python的正則表達式:錯誤:沒有重複

re.sub('\x03(\d*)?,?(\d*)?', '', content) 

錯誤:

File "/usr/lib/python2.7/re.py", line 151, in sub 
    return _compile(pattern, flags).sub(repl, string, count) 
    File "/usr/lib/python2.7/re.py", line 242, in _compile 
    raise error, v # invalid expression 
error: nothing to repeat 

我看不出有什麼毛病我正則表達式,所以任何人都可以解釋我做錯了嗎?

+1

發現這個在谷歌(甚至還有我的意見):http://stackoverflow.com/questions/5869650/python-regex-strange-behavior ,還有更多。 – Kobi

回答

7

您的正則表達式是合法的,但是Python的正則表達式實現有一個錯誤,導致它在某些情況下拒絕嵌套的可選量詞。

你不需要(...)? ES反正:

re.sub('\x03\\d*,?\\d*', '', content)