2014-11-22 3 views
1

У меня есть набор строк в нижнем формате, я хочу, чтобы захватить значение внутри двойных кавычек.
Вход:Как захватить определенную строку внутри двойных кавычек

"icici","1001","50.0" 
"hdfc","2001","10.0","20.0" 

Ожидаемый результат от параметра замещения:

\0 match icici and hdfc 
\1 match 1001 and 2001 
\2 match 50.0 and 10.0 
\3 match 20.0 

Я попытался ниже регулярное выражение, но он не работает должным образом, не могли бы вы помочь?

((?:")([0-9A-Za-z.]+)(?:",?))+ 
+0

Какой выход, что вы получаете? Также было бы здорово, если вы укажете, какой язык вы используете в – nu11p01n73R

+0

@ nu11p01n73R, язык java. Я в порядке, если вы показываете результат в http://regex101.com/ симуляторе. –

+0

Знаете ли вы, сколько значений может содержать строку? (min и max) –

ответ

0

попробовать это:

/\"([a-z0-9.]+)\"/mi позволяют символ ставит в [разрешить символ]

live demo

PHP

$re = "/\"([a-z0-9.]+)\"/mi"; 
$str = "\"icici\",\"1001\",\"50.0\"\n\"hdfc\",\"2001\",\"10.0\",\"20.0\""; 

preg_match_all($re, $str, $matches); 
    var_dump($matches[1]); 

или

$str=""; 
    if(count($matches[1])>0) foreach($matches[1] as $k=>$v){ 
     $str .="\\$k"."->".$v."  "; 
    } 
    echo $str ; 

выход:

array (size=7) 
    0 => string 'icici' (length=5) 
    1 => string '1001' (length=4) 
    2 => string '50.0' (length=4) 
    3 => string 'hdfc' (length=4) 
    4 => string '2001' (length=4) 
    5 => string '10.0' (length=4) 
    6 => string '20.0' (length=4) 

или

\0->icici \1->1001 \2->50.0 \3->hdfc \4->2001 \5->10.0 \6->20.0

+0

В приведенной выше демонстрационной ссылке, если я даю \ 0 в подстановке, ее соответствие всей строке, но я хочу сохранить \ 0 -> icici \ 1 -> 1001 \ 2-> 50.0 –

+0

, пожалуйста, дайте мне свой ввод и вывод после заменяя –

+0

ой, хорошо, я попробую. спасибо –