1
我想通過正則表達式來改變settings.py而不是手動。我有一個匹配所有安裝的應用程序,並抓住一切除了最後一個括號正則表達式:Python的正則表達式匹配,但不會立即後分
rgx = "(?P<start>INSTALLED_APPS.*?)\)"
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
)
match = re.search(rgx, content, re.DOTALL)
爭奪
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
但由於某些原因,當我去分吧,一個新的應用程序,像
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'my-new-app',
text, n = re.subn(rgx, new_string, content, re.DOTALL)
它不分任何東西。我跑作subn並證明它不匹配。這沒有任何意義,因爲我使用的是剛剛匹配的完全相同的正則表達式。我怎樣才能得到完全相同的正則表達式匹配,然後不匹配完全相同的字符串?
您的新輸入字符串不會以')結尾。對?然後,不可能有匹配。 –
好點,但那不是問題 - 我說的是整個settings.py文件,它有更多的parens。 ty雖然,基於我的例子,這是一個很好的猜測 – codyc4321