私たちが持っているチャット サービスに、より効率的な誓いフィルターを追加しようとしていますが、私のライブ django サーバーで正規表現を動作させることができないようです。
Python 2.6.7 で最新の安定した Django を実行しています。
これが私のコードです:
def replacement(match):
return "*" * len(match.group(0))
def censored_string(cFilter, dirty):
clean = str(dirty)
wordList = cFilter.mutations.split(',')
wordList.sort(key = len)
wordList.reverse()
for swear_word in wordList:
target_word = swear_word.strip()
result = re.sub("(?i)\\b(("+target_word+"){1,})(s{0,1})\\b",replacement, clean)
clean = result
return clean
記録のために-これは、python 2.6.7と同じdjangoバージョンも使用していることを確認できるローカルサーバーセットアップを使用して機能しますが、約10か月前からdjangoまたはpythonをあまり実行しておらず、最近このサーバーセットアップを継承しました-場合私が見逃しているものがあります。私に知らせてください。
エラーの出力は次のとおりです。
{
"error_message": "multiple repeat",
"traceback": ... "result = re.sub(\"(?i)\\\\b(\"+target_word+\"){1,}(s{0,1})\\\\b\",censored_word(target_word), clean)\n\n File \"/usr/lib/python2.6/re.py\", line 151, in sub\n return _compile(pattern, 0).sub(repl, string, count)\n\n File \"/usr/lib/python2.6/re.py\", line 245, in _compile\n raise error, v # invalid expression\n\nerror: multiple repeat\n"
}
私は貪欲などを使って、または使わずに試しましたが、今は迷っています - どんな意見でも大歓迎です
乾杯、
マイケル