我试图检索字符串中每个子字符串的索引列表。此字符串在字符串中的不同位置多次包含特殊字符\。应将\识别为字符,而不是特殊字符。当我获得子字符串的起始索引时,它跳过\并返回一个比应该的索引少的索引。任何帮助如何做到这一点将不胜感激。你知道吗
text = "ab\fx*abcdfansab\fasdafdab\f664s"
for m in re.finditer( 'ab\f', text ):
print( 'll found', m.start(), m.end() )
('ll found',0,3) ('ll found',13,16) ('ll found',22,25)
第二个指数应该是(14,17),第三个指数应该是(24,27)。而且,我不知道为什么第一个是正确的。你知道吗
Python将
\
解释为转义字符,就像许多其他编程语言一样。如果您想要一个文字反斜杠,请使用raw strings,并在模式中使用两倍的\
,因为backslash is a regex metacharacter:或者,double the backslashes everywhere, and don't use raw strings。再一次,记住在正则表达式中加倍地逃逸。你知道吗
要查找子字符串的非重叠出现:
或者使用正则表达式:
两者产生相同的输出:
相关问题 更多 >
编程相关推荐