ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

提取到特殊字符后的行尾:Python

2019-10-13 22:56:37  阅读:265  来源: 互联网

标签:python regex special-characters


我需要在每一行中的“#”之后加上字符串,并且所有行都具有#.我已经有一个匹配该行的正则表达式,当我向其中添加注释部分时,它不起作用.我将第一条评论之后的所有内容都归为一组.

行格式:

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有