5

我知道这是相当基本的,但是我想知道在两个引用点之间找到字符串的最佳方法是什么。

例如:

查找 2 个逗号之间的字符串:

Hello, This is the string I want, blabla

我最初的想法是创建一个列表并让它做这样的事情:

stringtext= []
commacount = 0
word=""
for i in "Hello, This is the string I want, blabla":
    if i == "," and commacount != 1:
        commacount = 1
    elif i == "," and commacount == 1:
        commacount = 0
    if commacount == 1:
        stringtext.append(i)

print stringtext
for e in stringtext:
    word += str(e)

print word

但是我想知道是否有更简单的方法,或者可能只是不同的方法。谢谢!

4

3 回答 3

10

这是str.split(delimiter)为了什么。
它返回一个列表,您可以执行[1]或迭代该列表。

>>> foo = "Hello, this is the string I want, blabla"
>>> foo.split(',')
['Hello', ' this is the string I want', ' blabla']
>>> foo.split(',')[1]
' this is the string I want'

如果您想摆脱可以使用的前导空格str.lstrip(),或者str.strip()还删除尾随:

>>> foo.split(',')[1].lstrip()
'this is the string I want'

在 Python 中通常有一个内置方法可用于像这样简单的事情 :-)
有关更多信息,请查看内置类型 - 字符串方法

于 2013-05-14T13:16:29.280 回答
5

另一种选择是在两个引用不需要相同时查找两个引用的索引(如两个逗号):

a = "Hello, This is the string I want, blabla"
i = a.find(",") + 1
j = a.find(",",i)
a[i:j]
>>> ' This is the string I want'
于 2013-05-14T13:31:50.307 回答
1

re如果您希望起点/终点不同,或者您想要更复杂的标准,我会使用- 这会更容易。

例子:

>>> import re
>>> s = "Hello, This is the string I want, blabla"
>>> re.search(',(.*?),', s).group(1)
' This is the string I want'
于 2013-05-14T13:30:48.963 回答