0

与えられた:

This is some text which could have 
line breaks and tabs before and after {code}
and I want them {code} to be replaced {code}in pairs{code} without any issues.

私が欲しい:

This is some text which could have 
line breaks and tabs before and after <code>
and I want them </code> to be replaced <code>in pairs</code> without any issues.

JsFiddle: http://jsfiddle.net/egrwD/1

簡単な作業テキストのサンプル:

var sample1 = 'test test test {code}foo bar{code} {code}good to know{code}';
var regEx1 = new RegExp('(\{code\})(.*?)(\{code\})', 'gi');
var r1 = sample1.replace(regEx1, '<code>$2</code>');

与えます:

test test test <code>foo bar</code> <code>good to know</code>

非稼働サンプル:

var sample2 = 'test test test {code}\tfoo bar{code} {code}\r\ngood to know{code}';
var regEx2 = new RegExp('(\{code\})(.*?)(\{code\})', 'gi');
var r2 = sample2.replace(regEx2, '<code>$2</code>');

与えます:

test test test {code}   foo bar{code} {code}
good to know{code}
4

1 に答える 1

1

改行全体でパターンを一致させ、最初にそれを適切にエスケープし{、正規表現リテラルを使用して、文字列内のバックスラッシュを二重にエスケープする必要性を修正するだけでよいようです。

/(\{code\})([\s\S]*?)(\{code\})/gi

http://jsfiddle.net/mattball/QNak5

{code}sを囲むキャプチャ括弧さえ必要ないことに注意してください。

/\{code\}([\s\S]*?)\{code\}/gi

http://jsfiddle.net/mattball/Jk5cr

于 2013-02-28T22:50:06.117 に答える