0

Adobe Flex HTML タグを修正するための RegEx または関数のいずれかを作成しようとする際に助けが必要です。それらのほとんどは修正されていますが、正当化タグで問題が発生しています。問題は、Flex が次のように RichTextEditor から html を保存することです。

<TEXTFORMAT LEADING="2">
<P ALIGN="LEFT">
<FONT FACE="Arial" STYLE="font-size: 10pt" size="10" COLOR="#000000" LETTERSPACING="0" KERNING="0">
Test Line 1
</FONT>
</P>
<TEXTFORMAT LEADING="2">
<P ALIGN="CENTER">
<FONT FACE="Arial" STYLE="font-size: 10pt" size="10" COLOR="#000000" LETTERSPACING="0" KERNING="0">
Test Line 2
</FONT>
</P>

P ALIGN=" _ _" を、left、right、center、justify などの同等の html4 タグに置き換える方法を考え出そうとしています。ただし、その終了タグも置き換える必要があります。

上記の例は次のようになります

<TEXTFORMAT LEADING="2">
<left>
<FONT FACE="Arial" STYLE="font-size: 10pt" size="10" COLOR="#000000" LETTERSPACING="0" KERNING="0">
Test Line 1
</FONT>
</left>
<TEXTFORMAT LEADING="2">
<center>
<FONT FACE="Arial" STYLE="font-size: 10pt" size="10" COLOR="#000000" LETTERSPACING="0" KERNING="0">
Test Line 1
</FONT>
</center>

誰かがこのようなことをしましたか?

4

2 に答える 2

0

以下のように、手動操作で tow regex を使用することを考えています。

      String startingTagPattern = "<P ALIGN=\"[\\w]\">";
      String endTagPattern = "</p>";

startingTagPattern が一致する場合、一致するタグ行を次のように取得します。

      String tagLine = match.group(0);
      String alignString = tagLine.substring(8,tagLine.lastIndexOf("\""));

これで、タグを次のように出力できます。

      String startTag = "<"+alignString+">";
      String endTag = "</"+alignString+">";
于 2012-10-31T16:43:28.643 に答える
0

正規表現を使用して、p align タグをそれぞれの値に置き換えることができます。

次のような入力の場合

<P ALIGN="LEFT">xyz</P><SomeTag></SomeTag><P ALIGN="CENTER">xyz</P>;

これがコードです。

    public static void main(String[] args) {        
        String str = "<P ALIGN=\"LEFT\">xyz</P><SomeTag></SomeTag><P ALIGN=\"CENTER\">xyz</P>";
        Pattern pattern = Pattern.compile("(?i)<(P ALIGN=\")([^\"]+)([^>]+)>([^<]+)<([^>]+)");
        Matcher matcher = pattern.matcher(str);
        while(matcher.find()) {         
            str = str.replaceFirst(matcher.group(1), ""); // replaces <p align
            str = str.replaceFirst(matcher.group(3), ""); // replaces the single quote after LEFT or CENTER
            str = str.replaceFirst(matcher.group(5), "/" + matcher.group(2)); // replaces /P from the ending tag with /LEFT or /CENTER 
        }
        System.out.println(str);
    }

出力

<LEFT>xyz</LEFT><SomeTag></SomeTag><CENTER>xyz</CENTER>
于 2012-10-31T17:46:50.330 に答える