gpt4 book ai didi

Java 正则表达式匹配未按预期工作

转载 作者:行者123 更新时间:2023-12-01 20:54:42 26 4
gpt4 key购买 nike

我有一个字符串:

String str = "sourceType=Match, msg=Event yyuyu, test 1, usrPicture=null, friendCount=0";

现在我正在编写一个正则表达式,将“msg”的值替换为“....”我的正则表达式如下所示:

str.replaceAll("(\\smsg=)(.+?)(,)", "$1...$3");

根据我上面的正则表达式,它匹配直到:

msg=Event yyuyu,

但我希望它匹配直到:

msg=Event yyuyu, test 1,

基本上它应该匹配到最后一个“,”(我的意思是它应该匹配到键“msg”的值的最后一个“,”)。我尝试在 (,) 之后放置一些正则表达式。但这不起作用。对此的任何帮助将非常感激。

最佳答案

问题是,您是说通过在 (.+?) 中添加 ? 来匹配尽可能少的字符。尝试将其删除。

 str.replaceAll("(\\smsg=)(.+)(,)", "$1...$3");

此外,您提到您想要匹配到最后一个 , 所以它应该匹配到

msg=Event yyuyu, test 1, usrPicture=null,

直到

msg=Event yyuyu, test 1,

正如您在问题中指定的那样。

查看此https://regex101.com/r/BCNsTt/1

关于Java 正则表达式匹配未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42546801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com