正規表現を使用してSQLエクスポートファイルからデータをダンプしようとしています。投稿コンテンツのフィールドに一致するように、私は '(?P<content>.*?)
'を使用します。ほとんどの場合、うまく動作しますが、フィールドに '\ n'の文字列が含まれている場合、正規表現は一致しません。どのようにして正規表現を修正して一致させることができますか?ありがとう!正規表現: " n"(改行)を含む文字列をどのように一致させるか?
例(Iは、Pythonを使用しています):
>>> re.findall("'(?P<content>.*?)'","'<p>something, something else</p>'")
['<p>something, something else</p>']
>>> re.findall("'(?P<content>.*?)'","'<p>something, \n something else</p>'")
[]
P.S.前部に「\」が付いているすべての文字列は、エスケープ文字として扱われているようです。どのようにregxに彼らをそのまま扱うように指示できますか?
感謝を参照してください!また、たとえば、文字列に '\ a'と答えると '\ x07'に変換されます。彼らをそのまま維持する方法はありますか?それともデータベースに入れても問題ないのですか? –
'\ x07'はPythonがコード7で文字を表現するための単なる方法です。それを表現する別の方法は' \ a'です。どちらの場合も、文字列には実際には1文字しか含まれません。これは 'len(" \ x07 ")'と 'len(" \ a ")'をチェックすることで確認できます。また、\ a "==" \ x07 "'を検索するか、\ "a \" "。\" a \ fP( "a")\ "または\" 0 \ '' \ x07 "': '" \ x07 ".find(" 0 ")'で始まります。結果は非常に参考になるはずです。 –
こんにちはアダム!元の文字列に\ '結果が変換されます。'が含まれていれば、sqlコマンドを壊してしまいます。したがって、文字列をそのまま "そのまま"使用することが重要です –