Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 限制贪婪正则表达式_Regex - Fatal编程技术网

Regex 限制贪婪正则表达式

Regex 限制贪婪正则表达式,regex,Regex,示例字符串: ?token=a12b3c4d5e&time=1417111248&message=Lorem ipsum dolor sit amet&mode=reply&bbcode=1&topic=123456789 尝试使用(?:\?|&)message=(.+)&捕获消息,但是它匹配所有内容,直到最后一个&字符: Lorem ipsum dolor sit amet.&mode=reply&bbcode=1 当捕获组第一次遇到&时,如何停止捕获组 预期结果: Lorem ipsum

示例字符串:

?token=a12b3c4d5e&time=1417111248&message=Lorem ipsum dolor sit amet&mode=reply&bbcode=1&topic=123456789


尝试使用
(?:\?|&)message=(.+)&
捕获消息,但是它匹配所有内容,直到最后一个
&
字符:

Lorem ipsum dolor sit amet.&mode=reply&bbcode=1

当捕获组第一次遇到
&
时,如何停止捕获组


预期结果:


Lorem ipsum dolor sit amet.
您可以使用非常简单的正则表达式作为

message=[^&]+
例如:

  • [^&]+
    一次或多次匹配除
    &
    之外的任何内容

您还可以使用非贪婪的
+?
作为

message=(.+?)&

示例:

您可以使用非常简单的正则表达式作为

message=[^&]+
例如:

  • [^&]+
    一次或多次匹配除
    &
    之外的任何内容

您还可以使用非贪婪的
+?
作为

message=(.+?)&

示例:

您可以使用非常简单的正则表达式作为

message=[^&]+
例如:

  • [^&]+
    一次或多次匹配除
    &
    之外的任何内容

您还可以使用非贪婪的
+?
作为

message=(.+?)&

示例:

您可以使用非常简单的正则表达式作为

message=[^&]+
例如:

  • [^&]+
    一次或多次匹配除
    &
    之外的任何内容

您还可以使用非贪婪的
+?
作为

message=(.+?)&

示例:

+
之后添加
以使其不可冻结。
(?:\?|&)message=(.+?)&
(?:\?|&)message=([^&])&
+
之后添加
以使其不可冻结。
(?:\?:?\?\?\?\?|&)message&
+
之后添加一个
以使其不冻结。
(?:\?|&)message=(.+?)&
(?:\?|&)message=(^&]+)&
+
之后添加一个
以使其不冻结。
(?:\?:?\?\?|&)message=(.+)&
((?:?:+)&&>消息=((?:+)&