3

Python 2.7 を使用していくつかのドキュメントをスクレイピングしているときに、いくつかの煩わしいページ区切りに出くわしたので、これを削除することにしました。セパレーターにはいくつかのファンキーな文字が使用されています。これらの文字が utf-8 コードを明らかにする方法について、ここですでに 1 つの質問をしました。'\xc2\xad'、およびの 2 つの非 ASCII 文字が使用されてい'\x0c'ます。ここで、これらの文字といくつかのスペースとページ番号を削除する必要があります。

SO の他の場所で、ユニコード文字が正規表現と連携して使用されているのを見てきましたが、これらの文字が含まれていないのは奇妙な形式です'\u00ab'。さらに、ASCII 文字と非 ASCII 文字を使用しているものはありません。最後に、Python のドキュメントは、正規表現の Unicode の主題について非常に軽いです...フラグについての何か...わかりません。誰でも助けることができますか?

これが私の現在の使用法です。これは私が望むことをしません:

re.sub('\\xc2\\xad\s\d+\s\\xc2\\xad\s\\x0c', '', my_str)
4

2 に答える 2

2

特定の不要な文字を探すのではなく、不要なものをすべて削除できます

re.sub('[^\\s!-~]', '', my_str)

これにより、次の文字以外のすべての文字が破棄されます。

  • 空白 (スペース、タブ、改行など)
  • 印刷可能な「通常の」ASCII 文字 (!は最初の印刷可能な文字で、~10 進数の 128 未満の最後の文字です)

必要に応じて、さらに文字を含めることができます。文字クラスを調整するだけです。

于 2013-09-25T15:55:19.767 に答える