您如何仅替换下面表达式中括号之间的x:
{ x} x {x } x x {} x{x}{ x}
答案 0 :(得分:2)
您可以将.gsub
与后视和前瞻操作员一起使用:
# replace all instances of x within curly braces with y
'{ x} x {x } x x {} x{x}{ x}'.gsub(/(?<={)\s*x\s*(?=})/, 'y')
输出:
"{y} x {y} x x {} x{y}{y}"
您需要一种稍微替代的方法来保留空格:
'{ x} x {x } x x {} x{x}{ x}'.gsub(/{(\s*)x(\s*)}/, '{\1y\2}')
输出:
"{ y} x {y } x x {} x{y}{ y}"
答案 1 :(得分:2)
您可以使用此模式:
import org.apache.commons.dbcp.BasicDataSource
beans = {
dataSourceUnproxied(BasicDataSource) {
driverClassName = 'foo'
username = 'bar'
password = 'secret'
url = 'the_url'
...
}
...
}
它也适用于几个x。
细节:
txt.gsub(/(?:\G(?!\A)|{(?=[^{}]*}))[^x}]*\Kx/, 'y')
答案 2 :(得分:0)
<nav class="navbar navbar-inverse" id="nav1" ng-hide="isConnected">
...
此解决方案不会保留空格。