【问题标题】:operation on all numbers iwthin a text对文本中的所有数字进行操作
【发布时间】:2021-11-19 23:08:25
【问题描述】:

我想将文本文件中的所有数字相乘 乘以相同的因子。我真的不知道从哪里开始(我目前正在尝试 re replace 方法,但这似乎不起作用)。请帮忙!

【问题讨论】:

  • 使用带有函数的re.sub() 作为替换。函数可以做return str(int(match) * 2)
  • 好的,谢谢,但我不知道该怎么做。可以举个例子吗? (匹配是什么意思?)谢谢
  • 你使用什么语言?
  • Python 3.9 编码
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: python regex replace numbers


【解决方案1】:

使用匹配数字的正则表达式和函数替换。该函数应该将匹配的字符串解析为一个数字,将其乘以 2,然后将其作为字符串返回。

import re

def int_or_float(s):
    try:
        return int(s)
    except ValueError:
        return float(s)

text = "Blah blah 3 foo bar -15 xxx 124.3"
newtext = re.sub(r'-?\d+(?:\.\d+)?', lambda m: str(int_or_float(m.group(0)) * 2), text)
print(newtext)
# Output: Blah blah 6 foo bar -30 xxx 248.6

【讨论】:

    【解决方案2】:

    有了这个:

    Regex regex = new Regex(@"^\d$");你得到了所有的数字。

    那么就乘法吧。

    (如果要将它们放回文本中,只需获取这些数字的索引)。

    【讨论】:

    • 这是什么语言?
    • C#。帖子的作者没有提到他使用的语言。
    猜你喜欢
    • 2021-10-26
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 2021-07-14
    • 2016-12-10
    • 2015-02-01
    • 1970-01-01
    相关资源
    最近更新 更多