(?<=\[p\])(?!(?:\d{2}\:\d{2}\:\d{2},\d{3} --> \d{2}\:\d{2}\:\d{2},\d{3}))([^\"]+?\"[^\"]+?)(?=\[pp\])
我的问题是,为什么我的正则构造上面的构造不仅选择包含一个引用字符的正确文本部分,而且还包括上一条字符串和文本行。您知道如何解决问题吗?谢谢
模式不排除
[^\"]+?
[p]
,因此仅捕获一部分
[pp]
.
要修复它,您可能需要用负面的lookahead排除它们:
在匹配每个
(?:(?!\[pp?\])[^\"])+?
之前,它还确保以下序列不是[^\"]
。
在这里是完整的言论
\[pp?\]
检查测试案例