私は、文字列(データベース接続URI)を取り、Pythonの正規表現 -
これは正常に動作し、パスワードなどのユーザー名に名前のグループを使用して、それを分割Pythonの正規表現を持って脱出。問題は、パスワードとホストを分割するためにuriに@記号がある場合です。たとえば、
uri = 'username:[email protected]@host/database'
は一致しません。しかし、私は特殊文字をエスケープすることができます。例えば、
uri = 'username:p\@[email protected]/database'
と一致するようにしたいと思います。私の正規表現の経験はかなり限られている - 私は私は何をしたいのですが、それはそれは\文字が先行していますしない限り、@はありません任意の文字に一致するように
(?P<password>[^@]*)
グループを変更していると思います。もちろん、(ほとんどの)接続文字列には\ @がまったく含まれません。
ご迷惑をおかけして申し訳ございません。
あなたが行うことができ
最初にURLエンコードされないのはなぜですか? –
わかりませんが、それはもともと自分のコードではありません。それは実際にweb2pyからです。とにかく、URLエンコードされている、つまり@が%40に置き換えられた場合、私は同じ問題を抱えていませんか?彼らはまだエスケープする必要があります.. – Caligari
いいえ、正規表現エンジンはURLデコードしないためです。 –