2017-07-09 1 views

答えて

2

これは、文字列で改行文字が1文字とみなされるためです。

\\n5を実行すると、\がエスケープしているので、それは文字通り\n5と印刷され、Python標準による改行ではありません。あなたがPythonの改行です\nを探している最後になるあなたは、しかし、最初の\にあなたが\n正規表現表現をエスケープしているなど\\n[0-9]として正規表現を検索

。これはあなたの文字列の実際の改行に一致しますが、\\nでは2つの別個の文字ではなく、エスケープされた\nではありません。

+0

結果に\\ n5を得るにはどうすればよいですか? –

+0

@VaibhavPandey '\\ n5'と' \ n8'の両方を取得したい場合は、非キャプチャグループを使用して2つのうちの1つをチェックすることができます: ''(?​​:\\ n | \\\\ n )[0-9] ''。 '\\ n5'だけが必要な場合は、二重にエスケープされたスラッシュ' '\\\\ n [0-9] ''を含めてください。 –

1

に変更を加えるしていないようです、それは\n5

2

\\nが印刷されます、それはnのエスケープバックスラッシュだ、改行ではありません。

>>> import re 
>>> a = '''\n5 
... 8''' 
>>> a=re.findall('\\n[0-9]',a) 
>>> print(a) 
['\n5', '\n8'] 
関連する問題