0

インポートされた文字列の最初のフレーズを切り取ろうとしています。これは常に次の形式を取ります。

"\first phrase\\...\ ... "

最初のフレーズは任意の長さにすることができ、複数の単語で構成されます

最初に試したコードは次のとおりです。

phrase = s[1:s.find('\',1,len(s))] 

これは明らかに機能しませんでした。

r'\'コンパイルされません (EOL エラーを返します)。

次のバリエーション: r'\\\'; r'\\\\\\\', "\\\", "\\\\\\\""
に解決: phrase = s[1:-1]

最初の文字は常にバックスラッシュであるため、私も試しました:

phrase = s[1:find(s[0:1],1,len(s))], but it wasn't having any of it.

これは 10 分間の作業であるはずでした。

4

3 に答える 3

7

文字列リテラルのバックスラッシュはエスケープする必要があります。

'\\'
于 2012-07-16T22:57:06.807 に答える
5

複数単語の要件を簡単に処理できる分割コマンドを使用するだけです。

>>> s='\\first phrase\\second phrase\\third phrase\\'
>>> print s
\first phrase\second phrase\third phrase\

>>> s.split('\\')
['', 'first phrase', 'second phrase', 'third phrase', '']

>>> s.split('\\')[1]
'first phrase'

トリックは、バックスラッシュがバックスラッシュでエスケープされていることを確認することです。それがあなたが探している、または分裂している
ことが判明した理由です。\\

于 2012-07-16T22:59:02.443 に答える
1

生の文字列であっても、文字列の最後の文字として「\」を使用することはできません-書く必要があります'\\'-実際、質問を見ると、強調表示がやや不安定になることがわかります-提案されているように変更してみてください。そうすれば、それ自体が修正される可能性があります...

于 2012-07-16T23:01:42.863 に答える