想要将多次出现的 # 替换为 //
Want to replace multiple occurances of # to //
transform_comments
函数将 Python 脚本中的注释转换为 C 编译器可用的注释。这意味着查找以散列标记 (#
) 开头的文本并将其替换为双斜杠 (//
),这是 C 单行注释指示器。出于本练习的目的,我们将忽略 Python 命令中嵌入哈希标记的可能性,并假设它仅用于表示注释。我们还想将重复的散列标记 (##
)、(###
) 等视为单个评论指示符,仅替换为 (//
) 而不是 (#//
) 或 (//#
)。填写替换方法的参数即可完成此功能
这是我的尝试:
import re
def transform_comments(line_of_code):
result = re.sub(r'###',r'//', line_of_code)
return result
print(transform_comments("### Start of program"))
# Should be "// Start of program"
print(transform_comments(" number = 0 ## Initialize the variable"))
# Should be " number = 0 // Initialize the variable"
print(transform_comments(" number += 1 # Increment the variable"))
# Should be " number += 1 // Increment the variable"
print(transform_comments(" return(number)"))
# Should be " return(number)"
使用 *
正则表达式运算符
def transform_comments(line_of_code):
result = re.sub(r'##*',r'//', line_of_code)
return result
来自 re 库文档
*
Causes the resulting RE to match 0 or more repetitions of the preceding RE, as many repetitions as are possible. ab*
will match a
, ab
, or a
followed by any number of b
s.
import re
def transform_comments(line_of_code):
result = re.sub(r"#{1,}",r"//", line_of_code)
return result
import re
def transform_comments(line_of_code):
result = re.sub(r'(#*#) ',r'// ',line_of_code)
return result
我们可以使用 +
来表示一次或多次出现 #
result = re.sub(r"#+",r"//",line_of_code)
以下代码有效:
result = re.sub(r"[#]+","//",line_of_code)
transform_comments
函数将 Python 脚本中的注释转换为 C 编译器可用的注释。这意味着查找以散列标记 (#
) 开头的文本并将其替换为双斜杠 (//
),这是 C 单行注释指示器。出于本练习的目的,我们将忽略 Python 命令中嵌入哈希标记的可能性,并假设它仅用于表示注释。我们还想将重复的散列标记 (##
)、(###
) 等视为单个评论指示符,仅替换为 (//
) 而不是 (#//
) 或 (//#
)。填写替换方法的参数即可完成此功能
这是我的尝试:
import re
def transform_comments(line_of_code):
result = re.sub(r'###',r'//', line_of_code)
return result
print(transform_comments("### Start of program"))
# Should be "// Start of program"
print(transform_comments(" number = 0 ## Initialize the variable"))
# Should be " number = 0 // Initialize the variable"
print(transform_comments(" number += 1 # Increment the variable"))
# Should be " number += 1 // Increment the variable"
print(transform_comments(" return(number)"))
# Should be " return(number)"
使用 *
正则表达式运算符
def transform_comments(line_of_code):
result = re.sub(r'##*',r'//', line_of_code)
return result
来自 re 库文档
*
Causes the resulting RE to match 0 or more repetitions of the preceding RE, as many repetitions as are possible.ab*
will matcha
,ab
, ora
followed by any number ofb
s.
import re
def transform_comments(line_of_code):
result = re.sub(r"#{1,}",r"//", line_of_code)
return result
import re
def transform_comments(line_of_code):
result = re.sub(r'(#*#) ',r'// ',line_of_code)
return result
我们可以使用 +
来表示一次或多次出现 #
result = re.sub(r"#+",r"//",line_of_code)
以下代码有效:
result = re.sub(r"[#]+","//",line_of_code)