1

AS3 | フラッシュCS6| Adobe Air 3.5

非常に長い文字列があり、最終的にXMLとしてフォーマットされます。文字列には、次の行に沿って何かのインスタンスがいくつかあります。

<title>Some title</title>

//the following line would need changed
<title>Some title</garbage>

<title>Some title2</title>
<title>Some title3</title>

//the following line would need changed
<title>Someone's title & (his info)</garbage>

//the following line should NOT change
<another title>something else</garbage>

これらすべてを検索して置き換える必要があります。

<title>(whatever is here)</garbage>

そしてそれらを作ります:

<title>(whatever is here)</title>

ご覧のとおり、「ガベージ」はすべてのインスタンスに適用されるわけではないため、単純に検索して置き換えることはできません...<タイトル>を使用するものだけを置き換えたい...<別のタイトル>も使用しないでください<title>と</garbage>の間にどの文字が入るかは不明であることに注意してください

だから私はこれがうまくいかないことを知っていますが...私は次のようなことを考えていました:

str = str.replace(/<title>\w+<\/garbage>/, "<title>\w+<\/title>");

答えはこのページの「サブ文字列のキャプチャ」の下にあると思いますが、これまでのところ運がありません: http ://www.sevenson.com.au/actionscript/testing-regular-expressions/

この時点では、ランダムなものを接続しているように見えるので、助けを求める方が理にかなっています。

アドバイスをいただければ幸いです。

4

1 に答える 1

0

<title>前後の任意の記号に一致する</garbage>

str = str.replace(/(<title>.[^<]+)<\/garbage>/, "$1</title>");

http://regexr.com?33nog

于 2013-02-11T07:52:05.363 に答える