パイプの間で一致させる必要のあるテキストがあります。私は\|[^|]+\|
を試しましたが、それはそれぞれを集めるようではありません。複数のパイプ内でテキストを集める正規表現
|N/A|text123|text1235|Medium|1|Medium|test123|test456|test|test|test|http|tcp|
パイプの間で一致させる必要のあるテキストがあります。私は\|[^|]+\|
を試しましたが、それはそれぞれを集めるようではありません。複数のパイプ内でテキストを集める正規表現
|N/A|text123|text1235|Medium|1|Medium|test123|test456|test|test|test|http|tcp|
これはsplitのための仕事のようになります。
my @items = split /\|/, $string;
print "$_\n" for @items;
出力:
N/A
text123
text1235
Medium
1
Medium
test123
test456
test
test
test
http
tcp
限り正規表現として、これは動作するはずです:
my @items = /[^|]+/g;
はこれを試してみてください:
[^\|]+
e.e.e.パイプ以外のものにマッチする
これは最初の一致のみを取得します。すべてのマッチを得るには '/ g'(グローバル)修飾子が必要です(私はOPが何とかそれを求めていると思います)。 – stevieb
ああ、そうです。意味をなさない私は、デフォルトで/ gが設定されているhttps://regex101.com/を使ってデバッグしていました。ありがとう! –
'/ [^ |] +/g'はどうでしょうか?あなたの環境は何ですか?失敗した現在のコードを共有してください。 –