如何使正则表达式变为非贪婪?

我正在使用jQuery。我有一个带有特殊字符块的字符串(开头和结尾)。我想从特殊字符块中获取文本。我使用正则表达式对象进行字符串内查找。但是当有两个或两个以上特殊字符时,如何告诉jQuery查找多个结果?


我的HTML:


<div id="container">

    <div id="textcontainer">

     Cuộc chiến pháp lý giữa [|cơ thử|nghiệm|] thị trường [|test2|đây là test lần 2|] chứng khoán [|Mỹ|day la nuoc my|] và ngân hàng đầu tư quyền lực nhất Phố Wall mới chỉ bắt đầu.

    </div>

</div>

和我的JavaScript代码:


$(document).ready(function() {

  var takedata = $("#textcontainer").text();

  var test = 'abcd adddb';

  var filterdata = takedata.match(/(\[.+\])/);


  alert(filterdata); 


  //end write js 

});

我的结果是:[|cơthử|nghiệm|]thịtrường[| test2 |đâylàtestlần2 |]chứngkhoán[|Mỹ| day la nuoc my |]。但这不是我想要的结果:(。如何获取时间1的[文本]和时间2的[演示]?


我在互联网^^上搜索信息后才完成工作。我编写如下代码:


var filterdata = takedata.match(/(\[.*?\])/g);

我的结果是:[|cơthử|nghiệm|],[| test2 |đâylàtestlần2 |] 这是对的!但是我不太明白 你能回答我为什么吗?


一只名叫tom的猫
浏览 567回答 3
3回答

小怪兽爱吃肉

非贪婪的正则表达式修饰符就像它们的贪婪对应部分一样,但?紧随其后的是:*&nbsp; - zero or more*? - zero or more (non-greedy)+&nbsp; - one or more+? - one or more (non-greedy)?&nbsp; - zero or one?? - zero or one (non-greedy)

潇潇雨雨

我相信会是这样takedata.match(/(\[.+\])/g);在g末意味着全球性的,所以它不会在第一场比赛停止。
打开App,查看更多内容
随时随地看视频慕课网APP