Skip to main content
 首页 » 编程设计

python之反转字符串中标记的子字符串

2025年05月04日27Renyi-Fan

我有一个字符串,其中每个标记的子字符串都在 < 中和 > 必须颠倒(括号不嵌套)。例如,

"hello <wolfrevokcats>, how <t uoy era>oday?" 

应该变成

 "hello stackoverflow, how are you today?" 

我目前的想法是遍历字符串并找到索引对 其中 <和 >是。然后只需将字符串切片并放入切片 再次与标记之间的所有内容一起反转。 这是正确的方法吗?是否有明显/更好的解决方案?

请您参考如下方法:

使用正则表达式非常简单。 re.sub将函数作为匹配对象传递给的参数。

>>> import re 
>>> s = 'hello <wolfrevokcats>, how <t uoy era>oday?' 
>>> re.sub('<(.*?)>', lambda m: m.group(1)[::-1], s) 
'hello stackoverflow, how are you today?' 

正则表达式的解释:

<(.*?)>将匹配 < 之间的所有内容和 >在匹配组 1 中。确保正则表达式引擎将在第一个 > 处停止符号出现,惰性量词 *?被使用。

函数lambda m: m.group(1)[::-1]传递给 re.sub获取匹配对象,提取第 1 组,并反转字符串。最后re.sub插入此返回值。