2011-06-19 7 views
0

LaTeXレンダラの垂直バーセットのインスタンスを変更するためにJavaScript正規表現を作成しましたが、同じ段落内にそのようなインスタンスが複数ある場合は、最初と最後のバーにのみ影響しますバーの各セットに一致するようにします。次の例で、例えば正規表現のマッチセットを最小限にするにはどうすればよいですか?

replace(/\|(.*)\|/g, "\\textsc{$1}"); 

:正規表現です

Loremの|イプサム| dolor sit | amet |、 consectetur |アダイシング|エリート。

Loremの\のtextsc {イプサム|:

私の正規表現を生成しdolor sit | amet |、 consectetur | adipiscing} elit。

しかし、私はそれがすべてのセットに可能な限り小さな程度で一致することを望みます。

Loremの\のtextsc {イプサム}悲しみ \ textsc {AMET}、consectetur \ textsc {adipiscing} ELIT座ります。

この問題を解決するために正規表現を修正するにはどうすればよいですか?

答えて

5

もう一つの方法は、元の正規表現に単一の文字を追加することです:

replace(/\|(.*?)\|/g, "\\textsc{$1}"); 

誰もが*を知っていて、+が、私は非人気が彼らの兄弟であるか驚い *? +? *と+は常に可能な限り多く(貪欲)一致するように試みるのに対し、可能な限り少数の(貪欲ではない)ものと一致させようとする点を除いて同じことをします。

3
replace(/\|([^\|]+)\|/g, "\\textsc{$1}"); 
関連する問題