如何搜索总是以连字符开头的行对,但其中一行错误地没有以连字符开头。
我想找到所有用绿色标记的行对:
EXAMPLE
示例文本:
491
2019 - 01 - 15 00:00:00
- 是吗?
- 是的我是
492
2019 - 01 - 15 00:00:00 - 是吗?
是的我是
493
2019 - 01 - 15 00:00:00
是吗? - 是的我是
494
2019 - 01 - 15 00:00:00
是吗?
是的我是
我的一些尝试。他们给了一些结果,但从来没有完全期望的。\-\ [a-zA-Z0-9]+(\n|.)*?\-\
\-\ [a-zA-Z0-9]+(\n|.)*?^((?!\-).)*$
\-\ [a-zA-Z0-9]+(\n|.)*?(^((?!\-).))
1条答案
按热度按时间rqdpfwrv1#
如果我认为非常基础,也许以下就足够了:
查看在线demo
^
-起始线锚;(?!-.+\n-)
-Assert位置的负先行不直接后跟连字符、除换行符以外的1+个字符、一个换行符和另一个连字符;.+\n.+
-匹配1+除换行符以外的字符、一个换行符和1+非换行符;(?=\n\n|\Z)
-Assert位置的正向前查找后面跟着两个连续的换行符 * 或 * 文本的结尾。这将简单地突出显示不包含两个连字符的行集。然而,在您的问题中,您确实提到希望突出显示缺少 * 一个 * 连字符的行集。这可能意味着您需要这两行中的一行实际上仍然以连字符开头。如果是这种情况,请尝试:
唯一的区别是肯定的前向,它Assert直接或在一行文本之后有连字符。