3

我试图编写一个删除下划线的字符串清理器,但在数字之间(即,当字符串中有版本号时)用点替换它们。

 1_1_OS_And_Network_Specific_Config

我希望这个字符串像

 1.1 OS And Network Specific Config

我可以很容易地替换下划线,但我无法匹配数字之间的字符以替换为点。

\d_\d

似乎将两个数字与下划线匹配.. 但如果有三个,比如 3.4.1 它不会。

任何人都可以帮忙吗?

4

1 回答 1

8

首先,替换数字之间的下划线:

subject = subject.gsub(/(?<=\d)_(?=\d)/, '.')

(?<=\d)并且(?=\d)环视断言

他们确保在 ( ) 之前(?<=\d)和 ( (?=\d)) 当前位置之后有一个数字,但它们实际上并没有成为匹配的一部分。

然后,删除其余的下划线:

subject = subject.gsub(/_/, ' ')
于 2012-12-12T15:59:50.053 回答