此问题在此处已有答案:
How to replace only part of the match with python re.sub(6个答案)
21天前关闭
这里有一个字符串'Let $[C| d]$ be $星星$'。
如何用\(...\)替换上述字符串中的$..$。
结果应为'Let \([C| d]\)是\(星星\)'。
如何使用Python
我试过了
import re
x = 'Let $[C | d]$ be $Star$'
y = re.sub(r'\$.*?\$', r'\\(.*?\\)', x)
字符串
但不起作用
输出为'Let \(.?\)be \(.?\)'
参考:Regular Expression to find a string included between two characters while EXCLUDING the delimiters
1条答案
按热度按时间wpcxdonn1#
它应该可以工作,下面是一个工作示例。
字符串
说明**:**
re.sub
:这是Python中re模块提供的函数,用于执行正则表达式替换。r'\$(.*?)\$'
:这是用于匹配字符串中$..$
的所需模式的正则表达式模式。\
:这是一个转义字符,可确保以下$
符号被视为文字字符,而不是正则表达式中的特殊字符。\$(.*?)\$
:这会撷取$
符号之间的内容做为群组。.*?
是一个非贪婪匹配,它捕获$
符号之间的任何字符(换行符除外),但要尽可能少。r'(\1)'
:这是匹配模式的替换模式。(\1)
:它使用一个反向引用来引用模式中的第一个捕获组。在这种情况下,它是指在$
个符号之间捕获的内容。通过用括号将\1
括起来,我们指定替换的格式应为(...)
,从而捕获第一组的内容。