Regex 如何在不使用';你不支持他们吗?

Regex 如何在不使用';你不支持他们吗?,regex,Regex,考虑这个正则表达式: 应用于此字符串: 显然,由于贪婪的*,它将匹配整个字符串。最好的解决方案是使用非贪婪量词,如*?。但是,许多语言和编辑器不支持这些 对于像上面这样的简单情况,我已经用这样的正则表达式绕过了这个限制:]*)> 但是像这样的正则表达式能做什么呢开始(.*)结束 应用于此字符串: start 2356 end start my pal ned end start!@%@结束 是否有任何追索权?如果结束条件是存在单个字符,则可以使用负字符类: <([^>]*)>

考虑这个正则表达式:

应用于此字符串:

显然,由于贪婪的
*
,它将匹配整个字符串。最好的解决方案是使用非贪婪量词,如
*?
。但是,许多语言和编辑器不支持这些

对于像上面这样的简单情况,我已经用这样的正则表达式绕过了这个限制:
]*)>

但是像这样的正则表达式能做什么呢<代码>开始(.*)结束

应用于此字符串:

start 2356 end start my pal ned end start!@%@结束


是否有任何追索权?

如果结束条件是存在单个字符,则可以使用负字符类:

<([^>]*)>
你最后的办法是建造这样可怕的东西:

(en[^d]|e[^n]|[^e])*

我将
替换为
[^>]
,其中
在本例中是RE中的下一个字符。

出于好奇,哪些语言不支持“*?”?语言支持通常很好。实际上,更多的是编辑们倒下了。我脑子里想不出任何语言,但我知道我遇到过它们。顺便说一句,
[^>]*>
样式可能比贪婪或非贪婪匹配更有效,因为它不会导致回溯。如果可以的话,你应该用这个图案。我没想到要长头发。你说得对,它们也可能不受支持,但正则表达式的实现总是令人惊讶。这是一个答案。哈哈!那太可怕了。但这是一般的,有时你必须做你必须做的。非常聪明。最后一行字符串很漂亮,但不幸的是并不总是有效。尝试
从开始到结束
。因为没有编辑,所以从一开始这就是问题的一部分。我需要提高我的阅读理解能力。
(en[^d]|e[^n]|[^e])*