当前位置: 首页 > 知识库问答 >
问题:

如何使用regex[关闭]在特定字符串匹配后替换字符串

诸龙野
2023-03-14

想改进这个问题吗 通过编辑此帖子,添加详细信息并澄清问题。

https:www.google。com/;ParamName=项目;AccessKey=PDJKJDSJJKNEIOWEMCL/dsjdkhfjf=;值=xyz

在这里,我想用一些虚拟字符串替换AccessKey值并返回整个字符串。

预期输出:<代码>https:www.google。com/;ParamName=项目;AccessKey=dummyValueHere;值=xyz

是否有人可以通过使用replaceFirst或replace来帮助这里的正则表达式实现这一目的?

共有2个答案

杭泉
2023-03-14

如果要替换访问令牌的值,可以使用点元字符和量词来匹配正查找检查值前面是否有字符串AccessToken和正查找以匹配下一个分号之间的所有内容。

(?<=AccessKey=).+(?=;)

您的代码如下所示

String myURL = "https:www.google.com/;ParamName=project;AccessKey=pdjkjdsjjknneiowemcl/dsjdkhfjf=;Value=xyz";
String result = myURL.replaceFirst("(?<=AccessKey=).+(?=;)", "dummyValue");

在这里,您也可以测试regex:

https://regex101.com/r/U0394k/1

伊羽
2023-03-14

您可以使用捕获组

(AccessKey=[^;]+)

并替换为

AccessKey=myDummyValue

这给了

https:www.google.com/;ParamName=project;AccessKey=myDummyValue;Value=xyz

看见https://regex101.com/r/qWz0ye/1

 类似资料: