【问题标题】:regular expression to replace path variables in a URL用于替换 URL 中的路径变量的正则表达式
【发布时间】:2021-08-29 23:35:52
【问题描述】:

我正在使用 Java。 我想检查 URL 中的正则表达式是否包含数字 id 等路径变量,并将其替换为 *

我尝试了不同的模式,例如\/\d+.*,但没有达到我的预期。

input url: https://stackoverflow.com/questions/ask/123/456
expected output: https://stackoverflow.com/questions/ask/*/*

另一个:

input url: https://stackoverflow.com/questions/ask/123/456/find
expected output: https://stackoverflow.com/questions/ask/*/*/find

用“/*”替换“/”的正确正则表达式是什么?

【问题讨论】:

  • 你需要给出你想要的规范,而不仅仅是几个例子。它总是路径的两个组成部分吗? ...
  • 可以是多个。这只是一个例子。我从没说过 2

标签: java regex


【解决方案1】:

匹配全为数字的路径段的正则表达式:

/\d+(?=/|$)

用星号替换全部:

String masked = url.replaceAll("/\\d+(?=/|$)", "/*");

live demo

分解正则表达式:

  • /\\d+ 是斜线后跟数字
  • (?=/|$) 表示匹配必须后跟斜杠 输入结尾 ($)

替换将匹配的斜线加一个星号。

【讨论】:

  • 那个工具很棒。我找不到这么好的验证器。感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-01
  • 2019-10-03
  • 2013-01-22
  • 2011-08-18
  • 2012-10-28
  • 1970-01-01
相关资源
最近更新 更多