簡體   English   中英

如何提取在字符串之間嵌入換行符的雙引號之間的字符串?

[英]How to Extract the string between double quotes having newline embedded in between the string?

我想提取"引號之間的文本並附加它們。同時忽略嵌入在字符串中的換行符。

到目前為止我所擁有的是:

$whole_text="\"Ankit Stackoverflow is \n awesome\" \"a\" asd asd \"he\nllo\"\n";

while ($whole_text=~ /(.*?)"(.*?)"(.*?)/m)
{ 
    $whole_text=~ s/(.*?)"(.*?)"(.*?)/$2/m;
}

預期結果:

Ankit Stackoverflow is awesome and hello

您在正則表達式上使用了錯誤的修飾符。 /m處理字符串有多行,您實際上要在其中使用/s更改“。” 匹配任何字符,包括\\n

更改此設置實際上不會得到您想要的輸出,因為您反復應用轉換,並且它也會刪除任何過去引用的部分。 您還想使用/g修飾符,它會找到所有可能的匹配項,然后只應用一次正則表達式。

use strict;

my $whole_text="\"Ankit Stackoverflow is \n awesome\" \"a\" asd asd \"he\nllo\"\n";

$whole_text =~ s/(.*?)"(.*?)"(.*?)/$2/sg;

然后,如果你想擺脫你還需要的\\n

$whole_text =~ s/\n//sg;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM