私は次のようなXMLファイル構造を持っています:
<word id="15" pos="SS">
<token>infarto</token>
<lemmas>infarto</lemmas>
</word>
<word id="16" pos="AS">
<token>miocardico</token>
<lemmas>miocardico</lemmas>
</word>
<word id="17" pos="AS" annotated="head">
<token>acuto</token>
<lemmas>acuto</lemmas>
</word>
<word id="18" pos="E">
<token>in</token>
<lemmas>in</lemmas>
</word>
<word id="19" pos="SS">
<token>corso</token>
<lemmas>corso</lemmas>
</word>
私がやろうとしているのは、単語id 17(注釈付き=「head」のもの)を持つ単語を囲む単語の「pos」と「token」の値を取得することです。
これは、単語17の後に続くすべての一致に問題はありません。
(pos=")(.+)(")(\s\S+?)("head")([\s\S]+?)(>)(\w+?)(<+)([\S\s]+?)(pos=")(.+)(")([\s\S]+?) (token>)(.+)(<)([\s\S]+?)
これにより、必要なすべての情報が得られます。拡張したい場合は、追加するだけです。
(pos=")(.+)(")([\s\S]+?)(token>)(.+)(<)([\s\S]+?)
最後まで。きれいではありませんが、機能します。
今、私が反対方向に行きたいと思うとき、私は絶対に困惑しています
(pos=")(.+)(")([\s\S]+?)(token>)(.+)(<)([\s\S]+?)(pos=")(.+)(")(\s\S+?)("head")
単語16(「注釈付きヘッド」の前の最初の情報)の情報だけを照合するのではなく、前にあるすべての情報(単語15、単語14、単語13など)を照合します。
私は何が欠けていますか?
PS XMLパーサーを使用することは、残念ながらオプションではありません。