("price"\s?:\s?"(?:\d+\.?)+)(\s?€)" to be replaced by $1"
$1 is the first captured group. In that RegEx, this is : ("price"\s?:\s?"(?:\d+\.?)+)
- 1st Capturing Group
("price"\s?:\s?"(?:\d+\.?)+) :
-> "price" matches the characters "price" literally (case sensitive)
-> \s matches any whitespace character (equal to [\r\n\t\f\v ])
--> ? Quantifier — Matches between zero and one times, as many times as possible, giving back as needed (greedy)
-> : matches the character : literally (case sensitive)
-> \s matches any whitespace character (equal to [\r\n\t\f\v ])
--> ? Quantifier — Matches between zero and one times, as many times as possible, giving back as needed (greedy)
-> " matches the character " literally (case sensitive)
- Non-capturing group
(?:\d+\.?)+
-> + Quantifier — Matches between one and unlimited times, as many times as possible, giving back as needed (greedy)
--> \d+ matches a digit (equal to [0-9])
--> \.? matches the character . literally (case sensitive)
- 2nd Capturing Group
(\s?€)
-> \s matches any whitespace character (equal to [\r\n\t\f\v ])
--> ? Quantifier — Matches between zero and one times, as many times as possible, giving back as needed (greedy)
-> € matches the character € literally (case sensitive)
-> " matches the character " literally (case sensitive)
This will be replaced by $1" which is the first captured group followed by "
Test it yourself