ruby-on-rails - 如何在Ruby(Rails)中增加字符串和括号内的最新数字
问题描述
我有一个这样的字符串:
Hello (0)
也可以有这个:
Hello 12345 (0) (1) (65)
我想做的是增加最后一个数字。在这种情况下,预期结果将是这样的:
Hello (1)
Hello 12345 (0) (1) (66)
有没有办法在 Ruby 或正则表达式中神奇地做到这一点?我怎样才能保留所有括号中的所有数字但增加最后一个?
请注意,字符串中可以包含 unicode 字母,因此不应破坏结果。
解决方案
str = "Hello 12345 (0) (1) (65) (33a)"
str.sub(/.*\(\d+\)/, &:succ)
#=> "Hello 12345 (0) (1) (66) (33a)"
.*
是贪婪的,所以它会吞噬所有字符,包括'(0)'
and '(1)'
,直到它到达 . 的最后一个匹配项\(\d+\)
。
推荐阅读
- java - 将 Big Integer 值转换为 Java 中 8 的倍数的 8 位字节(2s 补大端)序列
- c++ - 理解 C++ std::shared_ptr
- c# - 矩形不改变颜色WPF
- java - Springboot 2 不向 Spring Data Rest(MVC 部分)添加任何自定义转换器
- javascript - 使用 Vue 方法时,我无法在访问数据时使用“this”
- .net-core - 使用 CLI 更新 .net core nuget 包
- ios - Safari 中的 PWA 与外部登录提供程序
- tsql - 如何清理数据库中多个表中的数据?
- sass - 为什么我收到无降序特异性错误?
- java - 在java Stream API中,中间操作被延迟执行而终端操作被急切执行是什么意思?