に1つのタグタイプを持つ文字列を置換するための正規表現私はspanタグ(他のHTMLタグ、単純なテキスト)と文字列であってもよい<span style="[^"]+">.*?</span>
タグの前と後、間のすべての文字列を置換するに 私はこのような正規表現を持つ。 .+?
、.*?
、代わりにを:Javascriptを
'<span>foo</span><span style="text-decoration:underline;">bar</span><span>baz</span>'
私も使ってみてください。この文字列
'foo<span style="text-decoration:underline;">bar</span>baz'
ため
var span_re = /^(.+)(?=<span)|(?=<\/span>)(.+)(?=<span)|(?=<\/span>)(.+)$/g;
str = str.replace(span_re, '<span>$1</span>');
は、私はこれが欲しい
'<span>foo</span><span style="text-decoration:underline;">bar<span></span>'
を得ましたは結果のない完全な式をキャプチャします。
私はパーサーは必要ありません。私はXHTMLを解析せず、自己完結型のタグを持っていません。
可能重複(http://stackoverflow.com/questions/1732348/regex-match-open-tags-except -xhtml-self-contained-tags)...( –
私はXHTMLを解析したくありません私は1つのタグタイプ(スパン)とテキストの前、後、後の間に - この単純な置換のためのパーサとして複雑なものを使用するのはなぜですか?パーサーに対して〜1kの代わりに〜1kのコードを使用してください。 – jcubic
@MattBallはい、パーサーを使用する必要があります。そうであるようにしてください:[必須リンク](http://stackoverflow.com/q/4231382/471272) – tchrist