我试图简单地获取以下内容中冒号之后的所有内容:
hfarnsworth:204b319de6f41bbfdbcb28da724dda23
然后是以下空格之前的所有内容:
29ca0a80180e9346295920344d64d1ce ::: 25basement
这就是我所拥有的:
for line in f:
line = line.rstrip() #to remove \n
line = re.compile('.* ',line) #everything before space.
print line
有什么建议可以给我指明正确的方向吗?谢谢!
另外,如果我想要返回匹配的字符串,re.compile是正确的函数吗?我也是python的新手。谢谢!!
发布于 2012-02-03 19:48:31
string = "hfarnsworth:204b319de6f41bbfdbcb28da724dda23"
print(string.split(":")[1:])
string = "29ca0a80180e9346295920344d64d1ce ::: 25basement"
print(string.split(" ")[0])
发布于 2012-02-03 19:41:17
首先,您可能应该仔细查看re.compile
的文档。它不希望第二个参数是要查找的字符串。尝试使用re.search
或re.findall
。例如:
>>> s = "29ca0a80180e9346295920344d64d1ce ::: 25basement"
>>> re.findall('(\S*) ', s)[0]
'29ca0a80180e9346295920344d64d1ce'
>>> re.search('(\S*) ', s).groups()
('29ca0a80180e9346295920344d64d1ce',)
顺便说一句,这不是正则表达式的任务。考虑使用一些简单的字符串操作(如split
)。
发布于 2012-02-03 19:44:05
这个正则表达式似乎起作用了
r"^(?:[^:]*\:)?([^:]*)(?::::.*)?$"
https://stackoverflow.com/questions/9128055
复制相似问题