给出下面的字符串:
';\n;20121110_160816\n;www.google.com\n\n; Test\na=5\n\nend\n'
将字符串解析为以下字段的正则表达式是什么? :
;\n
;20121110_160816\n
;www.google.com\n
; Test\n
我最初失败的尝试如下:
import re
m = re.search(';.+?\\n', mystr)
输出:
m.group()
';20121110_160816\n'
谢谢。
最佳答案
import re
re.findall('(;.*)\n', s)
表达式演练:
- 您的项目以“;”开头-> ';
- 后跟任意数量的任意符号 -> ".*""."=任意符号 "*"=0-无限次
- 以换行结束 -> "\n"
- 为了可读性,我将 repetition-grp 放在括号中
但在这种情况下,您还应该考虑:
s.split(),如果没有补充参数,它会在换行符处自动拆分。
更新 - 评论您的评论 ;-)
我不确定我是否真的理解你关于问号的问题。但总的来说,星号、问号和加号都是量词。与 , 和 - 键类似,它们本身没有任何意义,而且几乎毫无值(value)。但是结合其他键/字符,它们会修改它们的行为,或者在量词的情况下指定前面的字符/组是否和/或应该重复多少次。
关于python - 用于额外字段的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13328997/