使用正则表达式忽略URI段中的查询字符串?

时间:2013-05-16 07:15:56

标签: php regex api url uri

我有以下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

是否可以使用正则表达式实现此目的?

1 个答案:

答案 0 :(得分:3)

你这样做:

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

详细说明:

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

~        used to delimite the regular expression