我有这个代码
import re
text = "this is my desc abc-3456"
m = re.findall("\w+\\-\d+", text)
print m
这打印['abc-3456']但我想只获得abc-3456(没有方括号和引号)。 怎么做?
答案 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]