【发布时间】:2014-01-23 05:00:42
【问题描述】:
我需要从这样的目录中提取一个字符串:
my_new_string = "C:\\Users\\User\\code\\Python\\final\\mega_1237665428090192022_cts.ascii"
ID = '1237665428090192022'
m = re.match(r'.*(\b\w+%s)(?<!.{%d})' % (ID, -1), my_new_string)
if m: print m.group(1)
我需要从上面的my_new_string 中提取“mega”。目前上面只是得到mega_1237665428090192022那么我如何让它忽略ID号?
说实话,即使在查阅文档之后,我也不明白这些表达式是如何工作的。
r' 有什么作用? ?<!.{%d} 是如何工作的?
编辑:谢谢大家!
【问题讨论】:
-
(?<!.{-1})应该对什么有用? -
(?<!...)如果字符串中的当前位置之前没有匹配....则匹配。这称为否定后向断言。在这种情况下,!之后的字符.表示任何内容,{-1}应该表示偏移量.. python source, another answer