2024-09-30 01:36:35 发布
网友
我试图创建一个正则表达式来删除前导的尾随空格和注释。在
def func(): text="""test1 #comments1 test 2 blah #comments2 test3 4 923423423 #comments3 """
期望结果:
到目前为止,我有以下情况:
(?:\s*(.*?)\s*)(?:#.*)
https://regex101.com/r/okF3mg/2
但没有评论就漏了一行
{cd1>你可以使用^:
import re text="""test1 #comments1 test 2 blah #comments2 test3 4 923423423 #comments3 """ new_result = re.sub('\s+#\w+(?=\n)', '', text)
输出:
要在一个单个正则表达式中完成此操作,可以匹配前导空格、捕获延迟重复的字符,然后匹配尾随空格和可选的#子字符串,并替换为第一个捕获的组:
#
output = re.sub(r'(?m)^ *(.*?) *(?:#.*)?$', r'\1', input)
对于任何可能的情况,最好将标志内嵌到模式中:
re.sub(r"(?m)\s+#\w+(?=\n)", " ", text)
{cd1>你可以使用^:
输出:
^{pr2}$要在一个单个正则表达式中完成此操作,可以匹配前导空格、捕获延迟重复的字符,然后匹配尾随空格和可选的
#
子字符串,并替换为第一个捕获的组:对于任何可能的情况,最好将标志内嵌到模式中:
相关问题 更多 >
编程相关推荐