我有一个id:status序列的字符串。状态为0,1或2.我正在寻找一种方法来替换新的状态。
例如:
{{1}}
如您所见,我必须做两次替换以确保为id设置了正确的状态。这不仅没有效率,比如有一个id 11234,这也会改变这种状态。
正则表达式是什么样的,以确保它只匹配确切的id和一个语句来替换状态?
答案 0 :(得分:2)
您可以使用字符类[02]
来匹配0
或2
,以及字边界\b
,以便1234:2
可以匹配,{{ 1}}不能:
11234:2
请在此处查看regex demo。
如果topicStatusString = topicStatusString.replaceAll("\\b" + someId+":[02]\\b", someId+":1");
中有数字,则无需使用someId
,但在其他情况下这是个好主意。
答案 1 :(得分:0)
您可以使用单词边界标记(\ b)和match-any(。)正则表达式功能使replaceAll()执行您需要的操作。例如:
1234:0,567:1,89:2,11234:2
1234:1,567:1,89:2,11234:2
结果:
{{1}}