@lookmaaanohands

Thanks for showing what you already tried, and showing before/after data. That’s helpful.

FIND="([\w=-]+)\h([\w\h-]+)"
Same replacement as you used (or I phrase it as "${1}=${2}")

You may have to do Replace All multiple times to get them all, but you don’t have to change the expression.

In the first “term”, i search for word characters (alpha, numeric, underscore) or equals-sign (to allow it to do the multiple joins like you showed in the later examples) or the minus-sign (to allow text-text). In the second term, allow only word, hyphen, or horizontal spaces (that way, it handles the 3-or-more-word quoted terms correctly).

This also assumes that your last line in the final result

"text=text-text=text-text text"

was actually intended to be

"text=text-text=text-text=text"

Because you didn’t give a rule that would have left any spaces in your problem description (which sounded like you wanted all spaces between the quotes to become equals).

You could also use the generic regex for “Replacing in a specific zone of text” which is linked in our generic regex FAQ, which could accomplish the same thing in a single Replace All. The beginning and ending expressions (BSR and ESR) would just be simple quote marks, the find-expression (FR) would be a space or the \h equivalent, and the replacement (RR) would be the equals-sign. (I would have suggested that first, but since you’d already put in the work for your custom expression, so I thoguht I’d give you the tailored version)