Python中的re模块
我已经开始在python中使用re模块并编写小程序。获得以下输出。 我认为这是正确的替换,但我想在字符串以下的方式修改。 我试过了,但无法修改。有人能指出我的错误或想法吗 str_result=/#定义完整芯片/*开启芯片级设计*/Python中的re模块,python,regex,Python,Regex,我已经开始在python中使用re模块并编写小程序。获得以下输出。 我认为这是正确的替换,但我想在字符串以下的方式修改。 我试过了,但无法修改。有人能指出我的错误或想法吗 str_result=/#定义完整芯片/*开启芯片级设计*/ 这里不需要正则表达式: >>> strs = "#define FULL_CHIP /* Turn on for chip level design */" >>> if strs.startswith('#define FULL
这里不需要正则表达式:
>>> strs = "#define FULL_CHIP /* Turn on for chip level design */"
>>> if strs.startswith('#define FULL_CHIP'):
strs = '//' + strs
>>> strs
'//#define FULL_CHIP /* Turn on for chip level design */'
如果仍要使用正则表达式,请使用()
捕获组:
>>> strs = "#define FULL_CHIP /* Turn on for chip level design */"
>>> re.sub(r'(#define FULL_CHIP)',r'//\1', strs)
'//#define FULL_CHIP /* Turn on for chip level design */'
上述正则表达式将替换字符串中任何位置的所有#define FULL_CHIP
要替换字符串开头的#定义完整芯片
,请使用^
:
>>> re.sub(r'^(#define FULL_CHIP)',r'//\1', strs)
如果问题比说明的更复杂,并且您确实需要正则表达式,那么第二行应该是:
str= re.sub(r'#define FULL_CHIP.*',r'//\0',str)
原因是您希望生成/
,后跟匹配的全文。那是0组,不是1组。另外,我不明白为什么/
s和\
s在r'\\\/1'
中出现倒装。如果我的任何假设是错误的,请告诉我
str= re.sub(r'#define FULL_CHIP.*',r'//\0',str)