Ok, I want to use regular expressions for changing my `.tex`

file.

I have next patterns: `'mathcal{ <some letter>'`

without ending second brace. I need to glue it to `<some letter>`

from the right side. Note that I have **white space** after first brace.

I’ve done this regexp:

import sys import re with open('output.tex', 'w') as out: with open('input.tex', 'r') as file: for line in file: newline = re.sub('mathcal{..?', 'mathcal{\1}', line) out.write(newline)

but it seems not to work with the error “**invalid group reference 1 at position 9**“. How to make it right?

**Example:** so to the input: `Let $f$ --- choice function, given on $mathcal{ B$`

. I want it to be: `Let $f$ --- choice function, given on $mathcal{ B}$`

## Answer

Thanks for editing your question. I’m not familiar with latex, but it seems like you just want to use a regex to insert a `}`

between the single uppercase character and the `$`

. Let me know if this solution isn’t general enough:

import re line = "Let $f$ --- choice function, given on $mathcal{ B$" pattern = "mathcal{ ([A-Z])\$" new_line = re.sub(pattern, "mathcal{ \1}$", line) print(new_line)

Output:

Let $f$ --- choice function, given on $mathcal{ B}$ >>>