提取到特殊字符后的行尾:Python
作者:互联网
我需要在每一行中的“#”之后加上字符串,并且所有行都具有#.我已经有一个匹配该行的正则表达式,当我向其中添加注释部分时,它不起作用.我将第一条评论之后的所有内容都归为一组.
行格式:
Line1 blah blah... }}#Comment1 or it could be
Line1 blah blah...}}# Comment1
‘#’和注释之间有空格,或者没有空格.现在,它匹配到第一个大括号为止.
我的代码:
Linepattern = re.compile(r'\{(\s*(\w+)\s*|(\w+)|(\w+)\s*)\{(.*?)\}', re.DOTALL)
for match in Linepattern.finditer(infile):
line = matches.group(5)
#print line
comment = matches.group(6)
print comment # Returns the first comment and then the entire set of lines until end of file
我将正则表达式修改为:
Linepattern = re.compile(r'\{(\s*(\w+)\s*|(\w+)|(\w+)\s*)\{(.*?)\}\}(#.*)?', re.DOTALL)
我看了看这与我要寻找的东西非常接近:Expression up to comment or end of line
我的输出是:
Comment1
Line2 # Comment2
Line3 # Comment3 and so on...
我的行格式:
Foo { bar { foo=0; } }# blah1 =1, blah2=1 , blah3 =1, blah#=1
FOO { bar { bar=1;bar=2; } }#comment 2
解决方法:
(?<=#).+$
试试看,参见demo.re.M.
类似于print re.findall(r“(?< =#).$”,x,re.M).这里x是您的测试字符串. http://regex101.com/r/uH3tP3/3
标签:python,regex,special-characters 来源: https://codeday.me/bug/20191013/1910991.html