Regex Perl/lighttpd正则表达式

Regex Perl/lighttpd正则表达式,regex,perl,lighttpd,Regex,Perl,Lighttpd,我在lighttpd中使用regex重写URL,但我无法编写一个符合我要求的表达式(我认为这是非常基本的,显然不是,我可能遗漏了一些东西) 假设我有这个URL:/page/variable\u to\u pass/或/page/variable\u to\u pass/ 我想将URL重写为:/page.php?var=variable\u to\u pass 我已经有了一些规则,比如^/login/(.*?)$来处理特定的页面,但是我想创建一个可以匹配任何页面的规则,而不需要每页使用一个表达式

我在lighttpd中使用regex重写URL,但我无法编写一个符合我要求的表达式(我认为这是非常基本的,显然不是,我可能遗漏了一些东西)

假设我有这个URL:
/page/variable\u to\u pass/
/page/variable\u to\u pass/

我想将URL重写为:
/page.php?var=variable\u to\u pass

我已经有了一些规则,比如
^/login/(.*?)$
来处理特定的页面,但是我想创建一个可以匹配任何页面的规则,而不需要每页使用一个表达式

我试过:
^/([^.?]*)
,但它匹配整个
/page/variable\u to\u pass/
,而不仅仅是
page

感谢您的帮助,谢谢

试试看:

/([^.?])+/([^.?])+/
这将为您提供两个匹配项。

请尝试:

/([^.?])+/([^.?])+/

这将为您提供两个匹配项。

此regexp将满足您的需要

/([^\/]+)/(.+)

第一个匹配项是页面名称,第二个变量值是这个regexp应该满足您的需要

/([^\/]+)/(.+)

第一个匹配是页面名称,第二个变量值

谢谢,即使结尾有尾随/也会匹配。之后是否可以匹配变量?如果我有
/page/var1/var2/
,我将如何匹配这三个呢?我想你可以将它修改为
/([^\/]+)(?:/([^\/]+)*
,这样它将匹配所有的变量,即使最后有一个尾随/也会匹配这两个变量。之后是否可以匹配变量?如果我有
/page/var1/var2/
,我将如何匹配这三个变量?我认为您可以将其修改为
/([^\/]+)(?:/([^\/]+)*
,这样它将匹配所有变量