Notepad++正则表达式匹配问题:如何仅匹配开头含3个制表符的内容
正则匹配仅开头3个制表符的调整方案
你的正则之所以会匹配到开头有5个制表符的内容,是因为它只要求存在连续3个制表符,没有限制这3个制表符之前/之后不能有额外的制表符——当行首有5个制表符时,前3个会被正则匹配到,导致误判。
要实现仅匹配行首恰好3个制表符的内容,只需在正则中添加两个关键限定:
- 用
^锚定行首,确保匹配从一行的最开始位置启动 - 用正向否定预查
(?!\t),确保3个制表符之后的下一个字符不是制表符,排除4个及以上制表符的情况
调整后的正则:
^\t{3}(?!\t)"id":\s".+",
如果你的场景不是严格行首匹配(而是在文本中间,要求目标内容前没有额外制表符),可以改用反向否定预查来限制前面的字符:
(?<!\t)\t{3}(?!\t)"id":\s".+",
内容的提问来源于stack exchange,提问作者LuiTe
相关产品推荐
相关产品推荐

