指定した 2 つの文字列の間にある文字列をファイル内で複数回取得したい
私はこれを試しましたが、これはうまくいきません
/(?m)"String 1"!.*?"String2":/;
「文字列 1」と「文字列 2」の間にあるすべてのものが欲しい
助けてください
指定した 2 つの文字列の間にある文字列をファイル内で複数回取得したい
私はこれを試しましたが、これはうまくいきません
/(?m)"String 1"!.*?"String2":/;
「文字列 1」と「文字列 2」の間にあるすべてのものが欲しい
助けてください
入力文字列が次のようになっていると仮定します
$str='String 1GIANT FISHString 2'
これはうまくいきます
($wanted)= $str =~ /String 1(.*)String 2/
$wanted
今は「GIANT FISH」
dah..ファイル内の複数行...編集が近づいています
の入力を想定して、複数行でOK
String 1Line oneString 2
String 1GIANT FISHString 2
String 1String2
これはすべての文字列を取得します
(@wanted)= $str =~ /String 1(.*)String 2/g
@wanted には 3 つのエントリがあります
('Line one','GIANT FISH','')
2 番目の正規表現では、g for global は文字列内のすべての一致を検索します
以下が行います:
perl -lne 'push @a,/string(.*?)string/g;END{print "@a"}'
2つの文字列は文字列と文字列であり、それらの間にあるものはすべて配列要素としてストローされます.以下は、目的のためにテストした例です.とにかく、2つの文字列を必要な文字列に変更できます.
テスト済み:
> cat temp
string123stringstring234string
string456stringstring789string
> perl -lne 'push @a,/string(.*?)string/g;END{print "@a"}' temp
123 234 456 789