我正在使用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
替换"/"的合适正则表达式是什么?"/*"?
匹配全数字路径段的正则表达式:
/d+(?=/|$)
用星号替换全部:
String masked = url.replaceAll("/\d+(?=/|$)", "/*");
查看现场演示
分解正则表达式:
/\d+
是斜杠后面跟着数字(?=/|$)
表示匹配必须后跟斜杠或输入结束($
)
替换将匹配的斜杠加一个星号。