如何使用python re在如下字符串中查找target1
和target2
:
"aa.....target1...target2.....bb...target3...bb"
其存在形式为:
"aa.*(target).*bb"
但不喜欢:
"aa.* bb.*(target).*bb"
我需要获取字符串中以aa
开始并以bb
结束的部分。
有个主意(?<=aa((?!bb).)*?)(target\d)(?=.*bb)
。你知道吗
但是,模式不能包含非固定宽度搜索。你知道吗
Tags:
您需要分两步完成:1)提取
aa
和bb
之间没有aa
和bb
的子字符串,然后2)提取所有targetXXX
子字符串:参见Python demo online。你知道吗
图案细节
aa
-aaa
子串((?:(?!aa).)*?)
-任何字符,这不是aa
字符序列的起点,0或更多重复,尽可能少bb
-abb
子串^{} 模式只匹配
target
子字符串及其后面的任何1+数字。你知道吗为了得到
target1
和target2
,你可以使用一个积极的向后看和积极的向前看来得到aa和bb之间的部分。你知道吗要抓住以aa开头以bb结尾的部分:
^{}
然后您可以在点上拆分并删除空匹配项:
Test
如果字符串中出现两次后跟数字的目标,则可以使用两个捕获组:
^{}
相关问题 更多 >
编程相关推荐