我有正则表达式的麻烦。
我希望替换myData=xxxx&
xxxx可以更改的所有事件,但总是以&
结束,除了最后一次发生,myData=xxx
。
var data = "the text myData=data1& and &myData=otherData& and end myData=endofstring"
data.replace(/myData=.*?&/g,'newData');
它返回:
文本newData和& newData以及结束myData = endofstring
这是正确的,但我怎样才能检测到最后一个?
答案 0 :(得分:5)
两件事:
您需要在某个地方指定replace
的结果,而您在问题的代码中没有这样做
您可以使用替换(|
)来匹配&
或字符串结尾
所以:
var data = "the text myData=data1& and &myData=otherData& and end myData=endofstring"
data = data.replace(/myData=.*?(?:&|$)/g,'newData');
// ^^^^^^^-- 1 ^^^^^^^-- 2
console.log(data);

请注意使用非捕获组((?:...)
)来限制更改的范围。
答案 1 :(得分:0)
怎么样:
<prop key="hibernate.transaction.auto_close_session">true</prop>