私はひもを持っています、
string1 = "Sri Lanka National Chess Championship this year and represented Sri Lanka at represented Sri Lanka Universities at the World University Chess Championships."
また、「string2」という名前の別の文字列があります。これ<NOUN> and </NOUN>
は、スペースで区切られた「 」タグで囲まれた文字列のみです。
string2 = "<NOUN>Sri Lanka National Chess Championship</NOUN> <NOUN>Sri Lanka</NOUN> <NOUN>Sri Lanka</NOUN> <NOUN>World University Chess</NOUN>"
2番目の文字列には、任意の名詞タグ付き単語を含めることができることに注意してください(「string1」に基づいて、たとえば、string1に3つの名詞がある場合、string2には同じ3つの名詞が名詞タグで囲まれます)
「string1」にタグを追加し、次のようにstring1を作成し、
string1 = "<NOUN>Sri Lanka National Chess Championship</NOUN> this year and represented <NOUN>Sri Lanka</NOUN> at represented <NOUN>Sri Lanka</NOUN> Universities at the <NOUN>World University Chess</NOUN> Championships."
これを行うには、次のコードを使用しました。
Pattern p = Pattern.compile("<NOUN>(.*?)</NOUN>");
Matcher m = p.matcher(string2);
while(m.find()) {
string1= string1.replaceAll(m.group(1),m.group(0));
}
しかし、それは私に次の出力を与えます、
<NOUN><NOUN><NOUN>Sri Lanka</NOUN></NOUN> National Chess Championship</NOUN> this year and represented <NOUN><NOUN>Sri Lanka</NOUN></NOUN> at represented <NOUN><NOUN>Sri Lanka</NOUN></NOUN> Universities at the <NOUN>World University Chess</NOUN> Championships.
誰でもこれを正しく行う方法を教えてもらえますか?
または、指定された出力から目的の出力を取得する方法を教えてください。