我目前使用regex命令在搜索字符串周围提取pad的5个字符:
re.findall("(.{5}searchstring.{5})",text)
这在选择所需的文本时工作得很好,除非它位于字符串的最开始或末尾,在那里不再有5个字符的pad可以提取。
我正在寻找正则表达式,它将始终提取5个字符的文本,除非文本是如此接近文本的开始/结束,没有足够的垫-在这种情况下,提取所有它可以。
例如,我正在寻找:
`searchstring1234567` to return `searchstring12345',
`12searchstring12` to return `12searchstring12`
`1234567searchstring1234567` to return `34567searchstring12345`
上面的代码只对其中的第三个起作用,并且对前两个不返回任何值。
在范围量词中定义{min,max}
:
>>> re.findall("(.{0,5}searchstring.{0,5})", text)
['searchstring12345', '12searchstring12', '34567searchstring12345']