String manipulation – How can I change the node color in a point file using pattern matching?

For example, I have a point file

Enter the image description here

The color of the node is always gold, so in this example I'm trying to change it according to number 91 in "cep_s2_91".

I check if the typical line in the picture above matches a pattern.

txt = import["https://wolfr.am/zp54P15j", "Lines"];
m = StartOfLine ~~ space ~~ "" cep_s "~~ DigitCharacter ~~" ​​_ "~~
DigitCharacter .. ~~ "* fillcolor =" ~~ "gold" ~~ "]; ";
StringMatchQ[txt[[136]]m](*True*)

Now I want to change the color of the node according to their number, just use three colors.

txt = import["https://wolfr.am/zp54P15j", "String"];
Colors = {"Black", "Yellow", "Red"};
txtNew = StringReplace[txt, 
   a : (StartOfLine ~~ Whitespace ~~ ""cep_s" ~~ DigitCharacter ~~ 
        "_") ~~ b : DigitCharacter .. ~~ c : "*fillcolor=" ~~ 
     d : "gold" ~~ e : "]; ">
a <> b <> c <> colors[[ToExpression[b] % 3 + 1]]<> e];

But txtNew == txt gives TrueI do not know what's wrong.
Many Thanks!

PS: With this code the decision tree can be displayed

dot -Tpng test.dot -o test.png

dot -Tpdf test.dot -o test.pdf

Enter the image description here