import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?s)(Object(?:(?!Object).)*?ByteCode[ \\t]*:[ \\t]*\\R+)((?:(?:(?!EndByteCode).)*?(?:(?(3)(?!))(\\b\\w*?z\\b)|(?(4)(?!))(?!\\3\\b)(\\b\\w*?z\\b)|(?(5)(?!))(?!\\b(?:\\3|\\4)\\b)(\\b\\w*?z\\b)|(?(6)(?!))(?!\\b(?:\\3|\\4|\\5)\\b)(\\b\\w*?z\\b)|(?(7)(?!))(?!\\b(?:\\3|\\4|\\5|\\6)\\b)(\\b\\w*?z\\b)|(?(8)(?!))(?!\\b(?:\\3|\\4|\\5|\\6|\\7)\\b)(\\b\\w*?z\\b)|(?(9)(?!))(?!\\b(?:\\3|\\4|\\5|\\6|\\7|\\8)\\b)(\\b\\w*?z\\b))){1,7})";
final String string = "BEFORE:\n\n"
+ " Object\n"
+ " Type : InfinityProgram\n"
+ " LastChange : 2/18/2025 5:15:38 PM\n"
+ " DeviceId : NetWork_MankatoO\\OfcDmp\\Vav5_26\n"
+ " Alias : RmTempSignalPRG\n"
+ " CreateTime : 2/18/2025 5:13:20 PM\n"
+ " CreatedBy : Root\\Acc\n"
+ " TimeLocked : 2/18/2025 5:15:38 PM\n"
+ " InstanceId : 7227/33\n"
+ " ByteCode :\n\n"
+ "'ROOM TEMPERATURE CONTROL SIGNAL CALCULATIONS ' Dylan Salisbury Paape Energy Services 5/19/23\n\n"
+ "Numeric sync, lasthour\n"
+ "Numeric actn ' control loop \"action\" 1 or 0 (direct or reverse)\n\n"
+ "Line StartUp\n"
+ " Goto RmHappy\n\n"
+ "Line RmHappy\n"
+ " If ((IntrLkSystemRun = On) & (TempRmAvg > (StptRoom + 1)) & (TS > 2)) then Goto RmWarm\n"
+ " TempRmCntrlSig = 50\n"
+ " DamperPositionz = .5\n\n\n"
+ "Line RmWarm\n"
+ " If ((IntrLkSystemRun = Off) or (TempRmAvg < StptRoom)) then Goto RmHappy\n"
+ " TempRmCntrlSigz = PID11Fct(TempRmAvg, StptRoom, PIDTR[1], PIDTR[2], PIDTR[3], 0.5, actn, PIDTR[4], PIDTR[5], 0.5, 1, TempRmCntrlSigz, 0.005, Date)\n"
+ " TempRmCntrlSig = (TempRmCntrlSigz * 100)\n"
+ " DamperPositionz = .25\n\n"
+ " TempRmCntrlSigzAAAz = XXX\n\n\n"
+ " EndByteCode\n"
+ " Status : Active\n"
+ " EndObject";
final String subst = "$1Numeric $3, $4, $5, $6, $7, $8, $9\\r\\n\\r\\n$2";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);
System.out.println("Substitution result: " + result);
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html