Python:正则表达式匹配匹配

罗萨克

文本文件输出的语法形式为word> data <word,其中需要删除括号。data部分几乎可以是任何东西(并且长度可变),包括新行、空格、点、字母等。目前我正在使用...

text = re.sub("(>)(.{1,10})(<)", r"\2", text)

...但它有明显的局限性,1 是长度。不使用的原因*是因为有一些限制,即:

  • 除了边界外,没有其他人><不能出现在比赛中
  • 匹配内部只有1号可形成的图案位数,即dog> 7 4^ 8 0 . 2 1 6? <catexam> 1961 5 . 66 9 <ple不应匹配,而test> 0? <stringover> 1980 31, 6 000 <flow微细且括号应除去

如何接近?

罗萨克

由于在对问题进行一次编辑后,没有回答者添加到他们的答案中,因此我不得不发布另一个问题来回答该部分并实际完成正则表达式。

最后,我使用的最终代码是这样的:

text = re.sub(r">((?!(?:[^<]*\b\d\b){2})[^><]*)<", r"\1", text)

它只允许 1 个个位数的数字并且匹配中没有括号,否则会捕获其他任何内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章