jQuery を使用しています。特殊文字のブロック (開始と終了) を含む文字列があります。その特殊文字ブロックからテキストを取得したいです。文字列内検索には正規表現オブジェクトを使用しました。しかし、特殊文字が 2 つ以上ある場合に複数の結果を検索するように 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|đây là test lần 2|] chứng khoán [|Mỹ|day la nuoc my|]。しかし、これは私が望んでいる結果ではありません:(。1 回目の [text] と 2 回目の [demo] を取得するにはどうすればよいでしょうか?
インターネットで情報を検索した後、作業を完了しました ^^。次のようなコードを作成します。
var filterdata = takedata.match(/(\[.*?\])/g);
- 私の結果は次のとおりです: [|cơ thử|nghiệm|],[|test2|đây là test lần 2|]これは正しいです。しかし、私はこれをよく理解していません。なぜなのか答えてもらえますか?
ベストアンサー1
非貪欲正規表現修飾子は貪欲正規表現修飾子と似ていますが、?
直後に が続きます。
* - zero or more
*? - zero or more (non-greedy)
+ - one or more
+? - one or more (non-greedy)
? - zero or one
?? - zero or one (non-greedy)