Mar*_*cka 3 ruby regex conditional replace
给定一个输入字符串:
<m>1</m>
<m>2</m>
<m>10</m>
<m>11</m>
Run Code Online (Sandbox Code Playgroud)
我想更换不等于所有的值1
用5
.
所以输出String应如下所示:
<m>1</m>
<m>5</m>
<m>5</m>
<m>5</m>
Run Code Online (Sandbox Code Playgroud)
我试过用:
gsub(/(<m>)([^1])(<\/m>)/, '\15\3')
Run Code Online (Sandbox Code Playgroud)
但这不会取代10
和11
.
The*_*heo 19
#gsub
可以选择一个块,并将替换为该块的结果:
subject.gsub(/\d+/) { |m| m == '1' ? m : '5' }
Run Code Online (Sandbox Code Playgroud)