如何从python中的给定文本中提取字符“abc-3456”

时间:2015-09-01 05:58:46

标签: python

我有这个代码

import re   

text = "this is my desc abc-3456"
m = re.findall("\w+\\-\d+", text)
print m

这打印['abc-3456']但我想只获得abc-3456(没有方括号和引号)。 怎么做?

4 个答案:

答案 0 :(得分:1)

import re   

text = "this is my desc abc-3456"
m = re.findall("\w+\\-\d+", text)
print m[0]

答案 1 :(得分:1)

  

re.findall(pattern,string,flags = 0)
  返回字符串中pattern的所有非重叠匹配,作为字符串列表。

findall返回字符串列表。如果您想要第一个,请使用m[0] print m[0]将提供不包含[]''的字符串。

答案 2 :(得分:1)

如果您只想要第一个(或唯一的)结果,请执行以下操作:

import re

text = "this is my desc abc-3456"
m = re.search("\w+\\-\d+", text)
print m.group()

答案 3 :(得分:1)

re.findall返回匹配的列表。在该列表中,结果是字符串。如果需要,您可以使用re.finditer

在python中,列表的表示位于括号中:[member1, member2, ...]

字符串(" somestring")表示在引号中:'somestring'

这意味着字符串列表的表示形式为:

['somestring1', 'somestring2', ...]

因此,您在列表中有一个字符串,您要删除的字符是python表示的一部分,而不是您拥有的数据的一部分。

要获取字符串,只需从列表中获取第一个元素:

mystring = m[0]