Для следующей строки:Заменить специальные символы словами в python
s = The \r\n sun shines, that's fine [latex]not\r\nt for \r\n everyone[/latex] and if it rains, \r\nit Will Be better.
.
Если я хочу, чтобы заменить \n\r
на ' '
между [latex]
и [/latex]
, я могу использовать:
re.sub("\[latex\][^]]*\[/latex\]", lambda x:x.group(0).replace('\r\n',' '), s)
, который работает отлично.
Однако, если вход:
s = some\r\nthing\r\n[latex]\\[\x08egin{array}{*{20}{l}}\r\n{{\rm{dA}} = {\rm{wdy}}:}\\\r\n{{\rm{dF}} = {\rm{P}}\\;{\rm{dA}} = \rho {\rm{g}}\\left({{\rm{H}}-{\rm{y}}} \right)\\;\\omega \\;{\rm{dy}}}\r\n\\end{array}\\][/latex]\r\n
и я использую такое же выражение, ничего не заменяется. Любая идея, что я делаю неправильно?
Это потому, что ваше регулярное выражение не совпадает ни во втором случае. –
Используйте ['r" (? S) \ [latex]. *? \ [/ Latex] "'] (https://ideone.com/heODCc). Также обратите внимание, что ваши строки также содержат один '\ r' - вы также можете его заменить. –
Вводимая строка содержит строки или буквенные '\ r \ n' s? –