有一个很长的 xml 格式文本,例如:
><span class='ocrx_word' id='word_1_21_0_1_0' title='bbox 409 912 417 927'><</span><span class='ocrx_word' id='word_1_21_0_1_1' title='bbox 416 911 446 925'><forest>...
此 hocr 文本由 google document ai 制作。我想使用 hocr 文件制作可搜索的 pdf,但是当我尝试制作 pdf 时,我使用的 pdf 库显示错误。该库处理单词<forest>
作为损坏的 xml 元素。所以我想替换这个词<forest>
进入<forest>
.
我可以使用正则表达式找到模式:(?!<(div|span|\/span).*>)(<.*>)
此表达式不包括 <span>
和</span>
元素,并且仅包含 <
之间包围的单词和>
。
但我怎样才能只改变第一个和最后一个字符呢?
最佳答案
您可以使用以下说明:
re.sub(r"(?!<(?:div|span|\/span).*>)<([^<>]*)>", "<\1>", my_string)
请注意<
和>
被排除在捕获组之外。
我还替换了 .*
与 [^<>]*
,因为.
也匹配 <
和>
.
查看演示 here .
关于python - 是否有解决方案来选择某些正则表达式模式的第一个和最后一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77167859/