我正在尝试编写一个删除下划线的字符串清除程序,但在数字之间用字符替换它们(即,当字符串中有版本号时)。
1_1_OS_And_Network_Specific_Config
我希望这个字符串像
一样出现 1.1 OS And Network Specific Config
我可以很容易地替换下划线,但是我很难匹配数字之间的字符来替换点。
\d_\d
似乎将两位数与下划线相匹配..但如果有三位,如3.4.1则不然。
有人可以帮忙吗?
答案 0 :(得分:8)
首先,替换数字之间的下划线:
subject = subject.gsub(/(?<=\d)_(?=\d)/, '.')
(?<=\d)
和(?=\d)
是lookaround assertions。
他们确保在当前位置之前((?<=\d)
)和之后((?=\d)
)有一个数字,但它们实际上并不成为匹配的一部分。
然后,删除其余的下划线:
subject = subject.gsub(/_/, ' ')