编程语言
首页 > 编程语言> > 提取到特殊字符后的行尾:Python

提取到特殊字符后的行尾: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