用罗马数字代替数字

2024-09-27 07:26:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一种方法来替换字符串中所有出现的数字,用它们的罗马数字等价物表示。在

示例:

  • My 3 Top Tips: Part 19应该输出My III Top Tips: Part XIX
  • Se7en应该输出Se7en(因为字符7不是'word')

看来这项工作最好的包装是roman。不幸的是,它不接受同时包含文本和数字的字符串。在

我的想法是:

  1. split()文本
  2. 迭代每个word
  3. word是一个数字吗,如果是,请用roman替换它
  4. 再次合并列表

这看起来不太容易出错。最好的方法是什么?是否可以使用regex或list理解,或两者结合使用?在


Tags: 方法字符串文本示例mytop数字word
1条回答
网友
1楼 · 发布于 2024-09-27 07:26:37

要查找不属于较大单词的数字,请使用带word boundary anchors的正则表达式:

regex = re.compile(r"\b\d+\b")

将只匹配示例中的3和{},而不是{}。在

因此,使用this answer中的write_roman(),您可以

^{pr2}$

会得到

My III Top Se7en Tips: Part XIX

相关问题 更多 >

    热门问题