わかりました、おそらくここで噛みつきすぎました... xml/htmlを正規表現に解析することは想定されていませんが、他に多くのオプションがないことはわかっています。AS3 im を使用して、textflowlayout テキストのソースを別の形式に解析しています。
解析する文字列:
< fontFamily=Verdana encoding=unicode fontWeight="bold"> some text < fontFamily=Verdana encoding=unicode > some text < fontFamily=Arial encoding=unicode fontStyle="italic"> some text < fontFamily=Arial encoding=unicode fontWeight="bold" fontStyle="italic"> some text
私が本当に必要なのは:
< fontname=Verdanabold encoding=unicode> some text < fontname=Verdana encoding=unicode > some text < fontname=Arialitalic encoding=unicode > some text < fontname=Arialbolditalic encoding=unicode > some text
論理的には、文字列を部分文字列に分解して、部分文字列に fontWeight または fontStyle があるかどうかをチェックし、フォント名に重みまたはスタイルを追加して、フォント名がフォント NameWeightStyle になるようにすると考えています。次に、文字列を再構築します。フォントは、さまざまなスタイルまたは太さの任意のフォントである可能性があります。
または、これを行うための他の明るい方法をいただければ幸いです。
これまでのところ:
pattern = /<(.*?)>/gixsm;
var matches:Object = pattern.exec(str);
var finalstring:String = "";
for each ( var i:String in matches ) {
if(i!='0'){
Alert.show(i);
pattern = /fontFamily=\"([^"]*)"/i;
if(pattern.test(i)==true){
pattern = /fontFamily=\"([^"]*)\" /i;
var resultfontFamily:Object = pattern.exec(i);
var fontFamily:String = resultfontFamily[1].toString();
/*pattern = /fontWeight=\".*?\" /i;
if(pattern.test(i)==true){
pattern = /fontWeight=\"([^"]*)\" /i;
var resultfontWeight:Object = pattern.exec(i);
var fontWeight:String = resultfontWeight[1].toString();
fontFamily = fontFamily+fontWeight;
}
pattern = /fontStyle=\"([^"]*)\" /i;
if(pattern.test(i)==true){
pattern = /fontStyle=\"([^"]*)\" /i;
var resultfontStyle:Object = pattern.exec(i);
var fontStyle:String = resultfontStyle[1].toString();
fontFamily = fontFamily+fontStyle;
}*/
fontFamily = "fontname="+fontFamily+" encoding=unicode";
pattern = /fontFamily=\".*?"/i;
finalstring += i.replace(pattern, fontFamily);
}
}
}
str = finalstring;
いくつかのこと 1 - 一致オブジェクトを作成するパターン /<(.*?)>/gim; または /<([^<])+?>/gim; この文字列の配列/オブジェクトへの文字列の正確な収集者として as3 で動作しないようです???
2 このスティングを元に戻す必要があると仮定すると、「何らかのテキスト」にどのようにアクセスできますか?
どんな提案でも大歓迎です - とても感謝しています M