正则表达式替换部分匹配(在组中)

时间:2016-03-26 00:21:27

标签: python regex

输入是很多差异很小的文件,例如。 h3可以是h2,也可以是两个结束 - 所以想要使用(ver1 | ver2 | ver3),但只想替换部分匹配。

正则表达式(不起作用)

filedata = re.sub(r"""
  \uF0B7<br/>\n                          # Ě<br/> this means punctation mark
  (?P<txt>.*?)                           # this is text
  (?P<end>(?:<br/>)\n|\n<h)              # this is versions of endings
""",'\n<li>\g<txt></li>\g<end>',filedata, flags=re.S|re.VERBOSE)

输入:

(...)
\uF0B7<br/>
Something1<br/>
\uF0B7<br/>
Something2<br/>
\uF0B7<br/>
Something3
<h3>Next Topic
(...)

不幸的是 - (?:<br/>)无效 - <br/>位于\g<end>

结果:

  (...)
  <li>Something1</li><br/>
  <li>Something2</li><br/>
  <li>Something3</li>
  <h3>Next Topic
  (...)

预期结果:

  (...)
  <li>Something1</li>
  <li>Something2</li>
  <li>Something3</li>
  <h3>Next Topic
  (...)

(我知道,<li>需要<ul><dl>,但这是在其他正则表达式中)

0 个答案:

没有答案