需要帮助解析perl中的字符串

时间:2015-12-10 04:49:43

标签: regex perl

我是perl的新手。我需要帮助解析下面的字符串,我不知道该怎么做。

示例输入&预期产出:

1)简单字符串

Input: "postgres=C*/postgres" 
Expected output: ['postgres', 'C*', 'postgres']

2)更复杂的字符串。

Input: "test,""""=C/{}"=C*T/"test,""""=C/{}"
output:  ['"test,""""=C/{}"',  'C*T', '"test,""""=C/{}"']

请帮忙。

========================= UPDATE ============

我在Regex下面尝试过,它适用于简单的字符串,但它对复杂的字符串不起作用。

$line = "postgres=C*/postgres";
$line1 = 'test,""""=C/{}"=C*T/"test,""""=C/{}';
if($line =~ /(.+)\=(C\*)\/(.+)/)
{
 print "$1 $2 $3";
}

if($line1 =~ /(.+)\=(C\*)\/(.+)/)
{
 print "$1 $2 $3";
}

输出:

postgres C* postgres

我想在“= /”之间将字符串分开

但问题是并不总是存在于 = 之前的字符串中。

我想检索子字符串,例如 C C * C * T C * x 主弦。

1 个答案:

答案 0 :(得分:1)

(.*)=(C\*(?:T|x|))\/(.*)

https://regex101.com/r/wD0xU7/1

当然,这一切都取决于中心部分的实际格式(可能的值)。