正则表达式或和贪婪

Regex Or and Greedy

我正在尝试执行此正则表达式,但由于正则表达式的贪婪行为,我不确定如何编写 or 条件。

some_text=(?<value>.*)&|some_text=(?<value>.*)$

上面的正则表达式正是我想要的,但我想写一个更好的正则表达式,如下所示:

some_text=(?<value>.*)(?:&|$)

但是因为贪心,这个在遇到第一个&时并没有停止这个值,而是回到字符串的末尾。

感谢您的帮助

您可以只使用这个否定正则表达式:

some_text=(?<value>[^&]*)

[^&]* 将匹配 0 个或多个不是 &

的字符