0

我有以下 URI:

/host/segment1[?parm1=value1&param2=value2]/segment2/segment3[?parm1=value1&param2=value2]

如您所见,我想省略方括号内的内容,就像它是:

/host/segment1/segment2/segment3

编辑:方括号只是我要省略的内容的示例,它们实际上并没有出现在这些段中。一个真实的例子是:

/host/segment1?parm1=value1&param2=value2/segment2/segment3?parm1=value1&param2=value2

是否可以使用正则表达式来实现这一点?

4

1 回答 1

3

你这样做:

$result = preg_replace('~\?[^/]++~', '', $uri);

细节:

\?       question mark
[^/]++  all characters that are not a slash one or more times

~        used to delimite the regular expression
于 2013-05-16T07:19:44.297 回答