如何在java中更改标记之间的内容?
我正在搜索一个正则表达式,在这个正则表达式中,我可以在FIX中查找某些标记,然后向它们添加信息。 我想将标记引用为字符串,并使用ReplaceAll方法在正则表达式中搜索它。但是,我不知道当我不想替换正则表达式中的字符串,而想替换它后面的字符串(表示标记中的内容)时该怎么做。因为主体是一组由(0x01)字符分隔的如何在java中更改标记之间的内容?,java,regex,replaceall,fix-protocol,Java,Regex,Replaceall,Fix Protocol,我正在搜索一个正则表达式,在这个正则表达式中,我可以在FIX中查找某些标记,然后向它们添加信息。 我想将标记引用为字符串,并使用ReplaceAll方法在正则表达式中搜索它。但是,我不知道当我不想替换正则表达式中的字符串,而想替换它后面的字符串(表示标记中的内容)时该怎么做。因为主体是一组由(0x01)字符分隔的name=value对,并且您想替换值,所以可以使用模式 示例:替换标记49的值 body = body.replaceAll("(?<=\u000149=)[^\u0001]*"
name=value
对,并且您想替换值,所以可以使用模式
示例:替换标记49的值
body = body.replaceAll("(?<=\u000149=)[^\u0001]*",
Matcher.quoteReplacement("new value"));
挑剔:请注意消息中的第一个标记前面没有SOH。但替换它的值应该很少见,因为它表示修复版本。我正要键入相同的值,但我可以想象集线器可能会这样做@ChristophJohn@Andreas。这段代码很好,但我需要将内容添加到标记中,而不是替换它。如何引用正则表达式中的现有内容?@TziporahMualem为此添加了解决方案。只是出于好奇:使用正则表达式而不是修复库是否有特殊原因?您可能只处理日志文件中的消息?
body = body.replaceAll("(?<=\u000149=)[^\u0001]*",
"new text before $0 new text after"));