2

给出下面的字符串:

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

谢谢。

4

1 回答 1

1
import re
re.findall('(;.*)\n', s)

表达式演练:

  1. 您的项目以“;”开头 ->';
  2. 紧随其后的是任何数量的实际任何符号->“.*”“.”=任何符号“*”=0-无限次
  3. 它以换行符结尾 -> "\n"
  4. 为了便于阅读,我将重复-grp 放在括号中

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

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

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

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

于 2012-11-11T06:13:11.407 回答