我有下面的字符串,其中包含由(\ n)分隔的文本。我想使用正則表達式匹配xml內容,刪除所有空格和\ n並將其轉換爲單行。我使用了以下正則表達式:使用Perl正則表達式從字符串中分離XML內容
my $string = "this contains the text which I pasted below in before section";
$string=~ m/(^.*)(<[a-zA-Z]*>)/;
$extractedXml = $2;
爲什麼上面的代碼沒有得到XML內容?
前:
G11N/Locale=en_USY:/default/main/test1/test/test2/test4/test5/default.site
G11N/Localizable=true
TeamSite/Assocation/Version=1
TeamSite/LiveSite/DeploymentAudit=<?xml version="1.0" encoding="UTF-8"?>
<Deployments>
<test>hello</test>
</Deployments>
後:
Y:/default/main/test1/test/test2/test4/test5/default.site
G11N/Locale=en_US
G11N/Localizable=true
TeamSite/Assocation/Version=1
TeamSite/LiveSite/DeploymentAudit=<?xml version="1.0" encoding="UTF-8"?><Deployments><test>hello</test></Deployments>
http://regex101.com/r/zZ0wB8
您可以檢查它在這裏工作,但在實際的代碼,它只是第一行匹配。
你的正則表達式根本不匹配你的文本。請參閱http://regex101.com/r/pO5nW7。如果添加'/ m'修飾符,它至少會匹配第一個標記''。但它不能匹配''或任何結束標記,因爲您只允許使用其他字母。 –
simbabque