在有两个选项的第一个前瞻匹配处停止

Stop at first lookahead match with two options

我正在尝试生成一个 RegEx,它获取“<”和“>”之间的所有内容,如果出现以下情况则停止它找到一个“|”。例如:

这是 link <stackoverlflow.com>
这是 link <https://stackoverlflow.com>
这是 link <stackoverlflow.com |点击此处>
这是 link <https://stackoverlflow.com |点击此处>

我尝试过类似的方法,但它不起作用:((?!<)[^\s]+((?=>)|(?=\|)))
你能帮我吗?

您可以使用

(?<=<)[^<>\s|]+

regex demo

详情

  • (?<=<) - 紧接 <
  • 的位置
  • [^<>\s|]+ - 除了 <>、空格和 |.
  • 之外的 1 个或更多字符