Cómo hacer que la expresión Regular no codicioso?


Estoy usando jQuery. Tengo una cadena con un bloque de caracteres especiales (begin y end). Quiero obtener el texto de ese bloque de caracteres especiales. Utilicé un objeto de expresión regular para buscar en la cadena. Pero, ¿cómo puedo decirle a jQuery que encuentre múltiples resultados cuando tenga dos caracteres especiales o más?

Mi 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>

Y mi código JavaScript:

$(document).ready(function() {
  var takedata = $("#textcontainer").text();
  var test = 'abcd adddb';
  var filterdata = takedata.match(/(\[.+\])/);

  alert(filterdata); 

  //end write js 
});

Mi resultado es: [|cơ thử|nghiệm|] thị trường [|test2|đây là prueba lần 2|] chứng khoán [|Mỹ|día de la nuoc mi|] . Pero este no es el resultado que quiero : (. ¿Cómo obtener [texto] para los tiempos 1 y [demo] para los tiempos 2 ?


Acabo de hacer mi trabajo después de buscar información en Internet^^. Hago código como este:

var filterdata = takedata.match(/(\[.*?\])/g);
  • mi resultado es: [/c th th th / nghimm/], [|test2|đây là test lnn 2/] ¡esto es correcto!. pero realmente no entiendo esto. ¿Puedes contestar mi por qué?

Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32

Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52