我已经开始在python中使用re模块并编写小程序。得到以下输出。 我认为这是正确的替代但我希望修改字符串以下方式。 我试过但无法修改。任何人都可以指出我的错误或想法
str_result = // #define FULL_CHIP / *开启芯片级设计* /
import re
>>> str = "#define FULL_CHIP /* Turn on for chip level design */"
>>> str = re.sub(r'#define FULL_CHIP.*', r'\\/1',str)
>>> print str
\/1
答案 0 :(得分:2)
这里不需要正则表达式:
>>> 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
。
要替换字符串开头的#define FULL_CHIP
,请使用^
:
>>> re.sub(r'^(#define FULL_CHIP)',r'//\1', strs)
答案 1 :(得分:0)
如果问题比规定的更复杂并且您确实需要RegEx,则第二行应该是:
str= re.sub(r'#define FULL_CHIP.*',r'//\0',str)
原因是您希望生成//
,然后匹配整个文本。这是第0组,而不是第1组。此外,我不明白为什么/
和\
在r'\\/1'
中出现倒置。如果我的任何假设是错误的,请告诉我。