开发者

parsing a string based on specified identifiers

开发者 https://www.devze.com 2022-12-30 03:43 出处:网络
Let\'s say that I have the following text: input = \"one aaa and bbb two bbbb er ... // three cccc\" I would like to parse this into a group of variable开发者_Go百科s that contain

Let's say that I have the following text:

input = "one aaa and bbb two bbbb er ... // three cccc"

I would like to parse this into a group of variable开发者_Go百科s that contain

criteria = ["one", "two", "three"]
v1,v2,v3 = input.split(criteria)

I know that the example above won't work, but is there some utility in python that would allow me to use this sort of approach? I know what the identifiers will be in advance, so I would think that there has got to be a way to do this...

Thanks for any help, jml


Not terribly elegant but it works:

>>> s
'one aaa two bbbb three cccc'
>>> re.split(r"\s*(?:one|two|three)\s*", s)
['', 'aaa', 'bbbb', 'cccc']

The ?: keeps it from returning the delimiting identifiers in the results.


So, so ugly, but it should do what you need:

i1 = iter(input.split())
i2 = iter(input.split())
next(i2)
strdict = dict(zip(i1, i2))
print operator.itemgetter(*criteria)(strdict)
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号