正则表达式查找字符串

时间:2016-07-20 12:14:06

标签: javascript regex

我有正则表达式的麻烦。

我希望替换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

这是正确的,但我怎样才能检测到最后一个?

2 个答案:

答案 0 :(得分:5)

两件事:

  1. 您需要在某个地方指定replace的结果,而您在问题的代码中没有这样做

  2. 您可以使用替换|)来匹配&或字符串结尾

  3. 所以:

    
    
        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>

https://jsfiddle.net/ob8c2j9v/