从 URL 中去除所有数字字符的正则表达式模式(版本号除外)
Regex pattern to strip all the numeric characters from the URL (except for the version number)
我正在 Java 中编程,我需要“规范化”URI,这意味着,无论时间戳、portalId、超时、应用程序版本等的查询参数值如何,都将 URI 视为唯一的。
这是我的正则表达式模式:
(?<=/)[0-9]+
它适用于以下 URI:
https://app.url.com/user/1234567
但是,它不适用于下面的 URI。是否可以使用一种正则表达式模式来适应这两种情况?
示例中的数字似乎在 /
或 =
以及 version=
之后
您可能要做的是匹配 1 个或多个断言 /
或 =
到左侧的数字,但不是例如 version=
到左侧。
(?<=[/=])(?<!version=)\d+
模式匹配:
(?<=[/=])
正向后视,直接向左断言 /
或 +
(?<!version=)
负向后视,断言不是version=
直接向左
\d+
匹配 1+ 个数字
要删除路径 and/or 查询参数中的两个尾随数字 ID:
url = url.replaceAll("/\d+\b|\?.*", "");
我正在 Java 中编程,我需要“规范化”URI,这意味着,无论时间戳、portalId、超时、应用程序版本等的查询参数值如何,都将 URI 视为唯一的。
这是我的正则表达式模式: (?<=/)[0-9]+
它适用于以下 URI: https://app.url.com/user/1234567
但是,它不适用于下面的 URI。是否可以使用一种正则表达式模式来适应这两种情况?
示例中的数字似乎在 /
或 =
以及 version=
您可能要做的是匹配 1 个或多个断言 /
或 =
到左侧的数字,但不是例如 version=
到左侧。
(?<=[/=])(?<!version=)\d+
模式匹配:
(?<=[/=])
正向后视,直接向左断言/
或+
(?<!version=)
负向后视,断言不是version=
直接向左\d+
匹配 1+ 个数字
要删除路径 and/or 查询参数中的两个尾随数字 ID:
url = url.replaceAll("/\d+\b|\?.*", "");