我想找到未包含在段落中的起始文本。
这是我想要识别的模式:
所以应该选择这些行:
DATA[<div> Lorem ipsum <p>..
DATA[Lorem ipsum <p>..
并排除这些:
DATA[<p>Lorem ipsum</p>..
DATA[<div><p>Lorem ipsum</p>..
DATA[<div> <p>Lorem ipsum</p>..
在线研究之后,这是我提出的查询,但它会选择所有行,包括我想要排除的行:
(DATA\[(<div>(\s)*)?)(?!<p).+?<p>
有人可以指导我出错的地方吗?
答案 0 :(得分:1)
注意: - 仅适用于支持PCRE
您可以使用atomic group
之类的
(DATA\[(?>(<div>)?\s*)).+?<p>
<强> Regex Demo 强>
原子组 减少了回溯。因此,原子组的一部分要么失败要么作为一个单位成功。
您还可以使用占有量词
(DATA\[((<div>)?\s*)*+).+?<p>
<强> Regex Demo 强>