javascript - tag - Como fazer expressão regular em não-ganancioso?
title javascript (2)
Eu acredito que seria assim
takedata.match(/(\[.+\])/g);
g
no final significa global, por isso não pára no primeiro jogo.
Estou usando o jQuery. Eu tenho uma string com um bloco de caracteres especiais (início e fim). Eu quero pegar o texto daquele bloco de caracteres especiais. Eu usei um objeto de expressão regular para encontrar in-string. Mas como posso dizer ao jQuery para encontrar vários resultados quando tem dois caracteres especiais ou mais?
Meu 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>
e meu código JavaScript:
$(document).ready(function() {
var takedata = $("#textcontainer").text();
var test = 'abcd adddb';
var filterdata = takedata.match(/(\[.+\])/);
alert(filterdata);
//end write js
});
O resultado é: [| cơ thử | nghiệm |] thị trường [| test2 | đđy là test lần 2 |] chứng khoán [| M | | dia la nuoc my |] . Mas este não é o resultado que eu quero :(. Como obter [texto] para os tempos 1 e [demo] para os tempos 2?
Acabei de fazer o meu trabalho depois de pesquisar informações na internet ^^. Eu faço código assim:
var filterdata = takedata.match(/(\[.*?\])/g);
- meu resultado é: [| cơ thử | nghiệm |], [| teste2 | đđy là teste lần 2 |] está certo !. mas eu realmente não entendo isso. Você pode responder o meu por quê?
Os modificadores regex não-gananciosos são como suas contrapartes gananciosas, mas com um ?
imediatamente após eles:
* - zero or more
*? - zero or more (non-greedy)
+ - one or more
+? - one or more (non-greedy)
? - zero or one
?? - zero or one (non-greedy)