\K表示重置匹配的开始,这在不支持复杂的lookbehind时非常有用(即,它不允许+和 * 用于lookbehind)。它很好地满足了我的需求,然而,当我试图在python中使用它时,它报告了bad escape \K。以下是我的Python代码:
\K
bad escape \K
re.sub(r'\[\n[ ]+\d+, ?\n[ ]+\K\d+(?=, ?\n[ ]+(?:true|false)\n[ ]+\])', '__table1.column__', content)
gzjq41n41#
您可以使用2个捕获组来代替:
(\[\n[ ]+\d+, ?\n[ ]+)\d+(, ?\n[ ]+(?:true|false)\n[ ]+\])
Python demo| Regex demo在更换使用中:
\1__table1.column__\2
举个例子
re.sub( r'(\[\n[ ]+\d+, ?\n[ ]+)\d+(, ?\n[ ]+(?:true|false)\n[ ]+\])', r'\1__table1.column__\2', content )
osh3o9ms2#
您可以使用支持它的regex模块。
regex
wko9yo5t3#
您可以使用(?<=...)背后的积极外观例如,你想读取http div之后的所有内容:
(?<=...)
<label>Lorem Ipsum</label>
这个正则表达式(?<=<label>).*将返回:
(?<=<label>).*
Lorem Ipsum</label>
同时,如果你想删除最后一个div部分</label>,你可以使用积极的前瞻:(?=...),像这样:(?<=<label>).*(?=</label>)这将返回标签div内容:
</label>
(?=...)
(?<=<label>).*(?=</label>)
Lorem Ipsum
3条答案
按热度按时间gzjq41n41#
您可以使用2个捕获组来代替:
Python demo| Regex demo
在更换使用中:
举个例子
osh3o9ms2#
您可以使用支持它的
regex
模块。wko9yo5t3#
您可以使用
(?<=...)
背后的积极外观例如,你想读取http div之后的所有内容:
这个正则表达式
(?<=<label>).*
将返回:同时,如果你想删除最后一个div部分
</label>
,你可以使用积极的前瞻:(?=...)
,像这样:(?<=<label>).*(?=</label>)
这将返回标签div内容: