python - 用于额外字段的正则表达式

标签 python regex

给出下面的字符串:

';\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)

表达式演练:

  1. 您的项目以“;”开头-> ';
  2. 后跟任意数量的任意符号 -> ".*""."=任意符号 "*"=0-无限次
  3. 以换行结束 -> "\n"
  4. 为了可读性,我将 repetition-grp 放在括号中

但在这种情况下,您还应该考虑:

s.split(),如果没有补充参数,它会在换行符处自动拆分。

更新 - 评论您的评论 ;-)

我不确定我是否真的理解你关于问号的问题。但总的来说,星号、问号和加号都是量词。与 , 和 - 键类似,它们本身没有任何意义,而且几乎毫无值(value)。但是结合其他键/字符,它们会修改它们的行为,或者在量词的情况下指定前面的字符/组是否和/或应该重复多少次。

关于python - 用于额外字段的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13328997/

相关文章:

python - 随机名称生成器策略 - 帮我改进它

python - 关于代码段的时间复杂度

javascript - 捕获 <pre> </pre> 标签之间的所有内容

regex - Coldfusion 正则表达式逻辑行为异常

javascript - 正则表达式检查具有一系列模式的数字

python - Django admin 中可编辑的相关模型字段?

python - 无法读取使用不同方法写入的文件的内容

python - Python 中的 PS1() 就像在 Octave 中一样?

regex - 如何替换字符串并保留其大写/小写

c# - 正则表达式仅限制大写