我是新來的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 ============
我想下面的正則表達式,它適用於簡單的字符串,但對於複雜的字符串無法正常工作。
$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 * T或C * X從主串。
詳細解釋引號如何更改=。 「」「」做什麼?下一步「做什麼? – ysth
我想分析如果用戶在執行postgres中的任何SQL之前需要權限,所以這裏[user =」postgres「,permission =」C *。 owner =「postgres」],我正在測試極端的用戶名和角色,因爲postgres允許角色和用戶名中的特殊字符......所以在複雜的字符串[user ='「test,」「」= C/{}「 ',permission =「C * T」,owner ='「test,」「」= C/{}'] – n33rma
這是什麼,而不是如何,如果有1,2或3引號而不是4?那麼稍後的引用需要在那裏保持第一個=不是分隔符?(我不是你要回答那些特定的問題;我希望你給出你的規則,當=是分隔符,什麼時候是認爲就像任何其他字符) – ysth