2014-10-23 4 views
-4

Я хочу извлечь символы из первых двух вхождений " в мою строку.регулярное выражение для захвата содержимого «...»

пример:

my $string = 's.w;;wq[]][.zaw"this is what I need"as.w;;wq[]][.zaw"this I do not need".w;;wq[]][.za'; 

Спасибо заранее для решения моей проблемы :)

+2

Это не кодирование; что вы пробовали? __update__: oh, очевидно, это служба кодирования <_ <@miller – Mathletics

+0

Будет довольно сложно найти символы между первым вхождением '.', если только они не являются символами нулевой ширины. –

+0

@ialarmedalien Я думаю, что OP означает первую котировку. – Mathletics

ответ

0

Взгляните на perlretut - Using Character Classes.

Как показали:

use strict; 
use warnings; 

my $string = q{s.w;;wq[]][.zaw"this is what I need"as.w;;wq[]][.zaw"this I do not need".w;;wq[]][.za}; 

if ($string =~ /"([^"]*)/) { 
    print "$1\n"; 
} 

Выходы:

this is what I need 

Или просто использовать split

my $desire = (split /"/, $string)[1]; 
0

регулярное выражение: /"([^"]*)"/:

my ($wanted_string) = $string =~ /"([^"]*)"/; 
Смежные вопросы