Regex для сбора текста в нескольких каналах

У меня есть текст, которому нужно соответствовать между трубами. я пытался \|[^|]+\|, но это, кажется, не собирает каждого.

|N/A|text123|text1235|Medium|1|Medium|test123|test456|test|test|test|http|tcp|

2 ответа

Это похоже на работу для раскола:

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;

Попробуй это:

    [^\|]+

Т.е. сопоставлять что угодно кроме труб

Другие вопросы по тегам