正規表現で同じコードを実行すると、Python 2 と 3 で異なる出力が得られます。
これが、Web ページのどこかにある必要なデータであるとします。
source = ['\x1e\x1e5.5.30-log\x1epcofiowa@localhost\x1epcofiowa_pci\x1e',
'\x1e\x1e5.5.30-log\x1epcofiowa@localhost\x1epcofiowa_pci\x1e',
'\x1e\x1e5.5.30-log\x1epcofiowa@localhost\x1epcofiowa_pci\x1e',
'\x1e\x1e5.5.30-log\x1epcofiowa@localhost\x1epcofiowa_pci\x1e']
したがって、Python 2.6 で以下のコードを実行すると、完璧に動作します。上記のような正確な出力が得られます。
match = re.findall("\x1e\x1e\S+",source)
しかし、Python 3.3 で実行すると、次のようになります。
match = re.findall("\x1e\x1e\S+", str(source))
次のような一致変数の出力を取得しています。
['\x1e\x1e5.5.30-log', '\x1e\x1e5.5.30-log', '\x1e\x1e5.5.30-log','\x1e\x1e5.5.30-log']
では、Python 3 で文字列全体を取得しない理由を教えてください。なぜ\x1epcofiowa@localhost\x1epcofiowa_pci\x1e
毎回スキップするのですか?Python 2.6 のような出力が必要です。
ですから、現時点では私は無知です。お返事を待っております。ありがとう。