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

我只是使用 split 命令,它将轻松处理您的多字需求:

>>> 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 回答