Ma Lin <malin...@163.com> added the comment:
An simpler reproduce code: ``` import re NUM = 99 # items = [ '(001)', '(002)', '(003)', ..., '(NUM)'] items = [r'(%03d)' % i for i in range(1, 1+NUM)] pattern = '|'.join(items) # repl = '\1\2\3...\NUM' temp = ('\\' + str(i) for i in range(1, 1+NUM)) repl = ''.join(temp) text = re.sub(pattern, repl, '(001)') print(text) # if NUM == 99 # output: (001) # if NUM == 100 # output: (001@) # if NUM == 101 # output: (001@A) ``` ---------- components: +Regular Expressions nosy: +ezio.melotti, mrabarnett _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue38582> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com