Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的re模块_Python_Regex - Fatal编程技术网

Python中的re模块

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

我已经开始在python中使用re模块并编写小程序。获得以下输出。 我认为这是正确的替换,但我想在字符串以下的方式修改。 我试过了,但无法修改。有人能指出我的错误或想法吗

str_result=/#定义完整芯片/*开启芯片级设计*/


这里不需要正则表达式:

>>> 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)