わかりました、皆さんにとって複雑な問題があります。
古いデータの負荷からいくつかの値を抽出しようとしています。それは基本的に連結された7つの部分である文字列の束です||
test1||keep||1:1||test||3462||7885||test
ルール
文字列の各セクションには、セパレーターとして予約されている、
|
またはこのような 2 つの矢印(さらに下を参照) を除いて、任意の文字を含めることができます。<>
どのセクションも空である可能性があります。
たとえば、この例では、最初の 1 番目、5 番目、および 6 番目のセクションは空で、3 番目には英数字以外の文字がたくさん含まれています。
||keep||test's\ (o-kay?).go_od||test||||||test
さらに...
一部の弦は、これらの 7 つのピースの複数のピースで構成され、さらに<>
test1||keep||1:1||test||3462||7885||test<>test1||keep||1:1||test||3462||7885||test<>test1||keep||1:1||test||3462||7885||test
内部セクションのいずれかが空である可能性があることに注意してください。
test54||keep||test's\ (o-kay?).go_od||test||||||<>test||keep||test545's'/.||test||||test||test
目標
すべての文字列の 2 番目の部分だけを抽出し、配列に入れます。上記の例では、単語が含まれているのはすべての部分keep
です。
したがって、この例では:
||keep||test's\ (o-kay?).go_od||test||||||test
私は手に入れたい:
array('keep')
そして、この例では:
test1||keep-me||1:1||test||3462||7885||test<>||keep||||||3462||7885||<>test1||keep-me-too!||1:1||test||3462||||test
で区切られた 3 つの異なる文字列と見なすことができます<>
。
test1||keep-me||1:1||test||3462||7885||test
||keep||||||3462||7885||
test1||keep-me-too!||1:1||test||3462||||test
そして、私は抽出したい:
array('keep-me', 'keep', 'keep-me-too!')
ノート
私はこれをやってみましpreg_match
たが、後読みは固定長でない文字列を検索するのが好きではありません。
データを変更できません。それは私が取り組まなければならない古いデータです。