我想在较大的字符串中搜索正则表达式匹配从某个位置开始, and 不使用字符串切片.
我的背景是我想迭代地搜索字符串以查找各种正则表达式的匹配项。 Python 中的一个自然解决方案是跟踪字符串中的当前位置并使用例如
re.match(regex, largeString[pos:])
循环中。但对于非常大的字符串(~ 1MB)字符串切片,如下所示largeString[pos:]
变得昂贵。我正在寻找一种方法来解决这个问题。
旁注:有趣的是,在一个利基市场Python 文档 http://docs.python.org/library/re.html#matching-vs-searching,它谈论一个可选的pos
匹配函数的参数(这正是我想要的),函数本身找不到它:-)。
带有 pos 和 endpos 参数的变体仅作为正则表达式对象的成员存在。尝试这个:
import re
pattern = re.compile("match here")
input = "don't match here, but do match here"
start = input.find(",")
print pattern.search(input, start).span()
... 输出(25, 35)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)