gpt4 book ai didi

python - 将正则表达式模式转换为小写

转载 作者:行者123 更新时间:2023-12-01 04:00:16 24 4
gpt4 key购买 nike

我有一些像这样的 XML 文本:

text = '<sp> <speaker>T<seg rend="small">ARSIS</seg>. </speaker> <p>—Adelante, Señora. Gracias á la luz rosada, franquearemos sin tropezones este ingrato sendero.</p> </sp> <sp> <speaker>L<seg rend="small">A</seg> M<seg rend="small">ADRE</seg>. </speaker> <p>—La llovizna nos coge ahora de cara… Yo no la temo. Tengo mi rostro bien curtido para estas inclemencias que hacen á mis hijos duros, y tan insensibles al frío como al calor. Tú también te has endurecido, según veo, y te has dejado en los aires sutiles y en los ardores del sol tu antigua carita de galancete afeminado.</p>'

我想要 <seg rend="small"> 中的所有内容变为小写,例如:

 <sp> <speaker>T<seg rend="small">arsis</seg>. </speaker> <p>—Adelante, Señora. Gracias á la luz rosada, franquearemos sin tropezones este ingrato sendero.</p> </sp> <sp> <speaker>L<seg rend="small">a</seg> M<seg rend="small">adre</seg>. </speaker> <p>—La llovizna nos coge ahora de cara… Yo no la temo. Tengo mi rostro bien curtido para estas inclemencias que hacen á mis hijos duros, y tan insensibles al frío como al calor. Tú también te has endurecido, según veo, y te has dejado en los aires sutiles y en los ardores del sol tu antigua carita de galancete afeminado.</p> </sp> <sp> <speaker>T<seg rend="small">arsis</seg>. </speaker> <p>—En los días ásperos de la Aldehuela empecé á soltar mi máscara de cera, y cambié los goznes quebradizos de mi máquina corporal por otros de acero.</p> </sp> <sp> <speaker>L<seg rend="small">a</seg> M<seg rend="small">adre</seg>. </speaker> <p>—Al nombrar la Aldehuela traes á mi memoria algo que tenía que decirte, y es cosa en verdad lamentable. ¿Sabes que ha muerto el pobre José Caminero?</p> </sp>

我在Python中尝试过类似的不同变体:

    for f in re.findall(r'<seg rend="small">([^<]*?)</seg>', text):
text = text.replace(f, f.lower())

但是它不起作用,我得到了奇怪的结果,例如 <seg rend="small">aDRE</seg> ,不知道为什么。有人可以帮助我吗?提前致谢!

最佳答案

您可以使用正则表达式..

>>> txt = 'foo <seg rend="small">ARSIS</seg> bar'
>>> import re
>>> re.sub(r'(<seg\s+rend\s*=\s*"small">)(.*?)(?=</seg>)', lambda m: m.group(1) + m.group(2).lower(), txt)
'foo <seg rend="small">arsis</seg> bar'
>>>

关于python - 将正则表达式模式转换为小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36686255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com