2014-12-22 15 views
0

난 항상, 그것은 다음 값 중 하나를 반환 할 때마다 동적 될 것입니다 문자열이 있습니다정규식은 특정 단어 다음에 오는 값을 얻을 수

돌아 가기 1 ->Após o vencimento cobrar juros mora/dia de: R$ 3.44 ao dia Multa de: R$ 17,21 Valores expressos em Real (R$\f REMESSA CIP 263

반환 2 ->Após o vencimento cobrar juros mora/dia de: R$ 23.56 ao dia Multa de: R$ 117,80 Valores expressos em Real (R$\f REMESSA **PARCELA 01/02**

REMESSA CIP 263` :

나는 '(R $ \는 f를', 즉 내가 저를 반환하는 정규 표현식을 필요로 다음에 오는 값을 얻을 필요 >/\(R\$\\f (.*?)/i하지만 제대로 작동하지 않습니다 - 그리고 REMESSA ** PARCELA 1월 2일

내 정규 표현식이 있습니다. 어떻게 해결할 수 있습니까?

답변

0

더블 탈출 $ & \f과 같은 욕심 라인의 나머지합니다

$arr = Array('Após o vencimento cobrar juros mora/dia de: R$ 3.44 ao dia Multa de: R$ 17,21 Valores expressos em Real (R$\f REMESSA CIP 263', 
'Após o vencimento cobrar juros mora/dia de: R$ 23.56 ao dia Multa de: R$ 117,80 Valores expressos em Real (R$\f REMESSA **PARCELA 01/02** '); 
foreach($arr as $str) { 
    preg_match("/\(R\\$\\\\f (.*)/i", $str, $m); 
    print_r($m); 
} 

출력 :

Array 
(
    [0] => (R$\f REMESSA CIP 263 
    [1] => REMESSA CIP 263 
) 
Array 
(
    [0] => (R$\f REMESSA **PARCELA 01/02** 
    [1] => REMESSA **PARCELA 01/02** 
) 
0
  1. 사용하십시오 lookbehind 주장이 (R$\f을 캡처 방지 할 수 있습니다.
  2. .*?을 욕심스럽게 만들어 실제로 일치시킬 수 있습니다.

결과 :

(?<=\(R\$\\f).*