// include the latest version of the regex crate in your Cargo.toml
extern crate regex;
use regex::Regex;
fn main() {
let regex = Regex::new(r"(?ms)(?:\'\,\[\]\)\d{0,10}\ then\ begin\s?)^(.*?)\bend;").unwrap();
let string = "e R$ '+FormatFloat('#,##0.00', valorPercentual )
else
FieldByName('InstrucoesMultaVencimento').Value := '';
end;
if oCDS_CONVENIOBANCARIOCOBREBEMPROP.Locate('CBC_NOMEPROPRIEDADE','InstrucoesDiasProtesto',[]) then begin
AlteraDescricaoInstrucao := oCDS_CONVENIOBANCARIOCOBREBEMPROP.FieldByName('CBC_VALORPROPRIEDADE').AsString;
AlteraDescricaoInstrucao := StringReplace( AlteraDescricaoInstrucao,'#DIA#', FloatToStr(oCds_ConvenioBanco.FieldByName('CBP_PROTESTODIAS').AsFloat),[rfReplaceAll, rfIgnoreCase]);
FieldByName('InstrucoesDiasProtesto').Value := AlteraDescricaoInstrucao;
end else begin
if ( oCds_ConvenioBanco.FieldByName('CBP_PROTESTODIAS').AsFloat > 0 ) then
FieldByName('InstrucoesDiasProtesto').Value := 'Após '+IntToStr(oCds_ConvenioBanco.FieldByName('CBP_PROTESTODIAS').AsInteger)+' dias do vencimento protestar'
else
FieldByName('InstrucoesDiasProtesto').Value := ''; end;
if ( oCds_ConvenioBanco.FieldByName('CBP_CALCULAVALORJURO').AsString = 'P' ) then
valorJuroDiario := ( ( BoletoBancario.ConvenioBancario.ValorDocumento * oCds_ConvenioBanco.FieldByName('CBP_PERCENTUALJUROSDIARIO').AsFloat) / 100)
else
valorJuroDiario := oCds_ConvenioBanco.FieldByName('CBP_PERCENTUALJUROSDIARIO').AsFloat;
if oCDS_CONVENIOBANCARIOCOBREBEMPROP.Locate('CBC_NOMEPROPRIEDADE','InstrucoesJurosDiario',[]) then
FieldByName('InstrucoesJurosDiario').Value := oCDS_CONVENIOBANCARIOCOBREBEMPROP.FieldByName('CBC_VALORPROPRIEDADE').AsString
else begin
if ( oCds_ConvenioBanco.FieldByName('CBP_PERCENTUALJUROSDIARIO').AsFloat > 0 ) then
FieldByName('InstrucoesJurosDiario').Value := 'Após vencimento cobrar juros de R$ '+FormatFloat('#,##0.00', valorJuroDiario)+' por dia de atraso.'
else
FieldByName('InstrucoesJurosDiario').Value := ''
end;
if ( BoletoBancario.ConvenioBancario.OutrasInstrucoes <> '' ) then
OutrasIntrucoes := oCds_ConvenioBanco.FieldByName('CBB_OUTRASINSTRUCOES').AsString
else
OutrasIntrucoes := '';
if ( NumeroNFSe <> 'SemNumero' ) then{#T31720}
OutrasIntrucoes := OutrasIntrucoes + 'Boleto ref. a Notas: ' + NumeroNFSe; // NumeroNF; {#T31549}
if ( NumeroNF <> 'SemNumero' ) then begin{#T31720}
if ( OutrasIntrucoes <> '') then begin
OutrasIntrucoes := OutrasIntrucoes+#13#10+ 'RPS: ' + NumeroNF; // NumeroNFSe; {#T31549}
end else
OutrasIntrucoes := 'Boleto ref. a RPS: ' + NumeroNF; // NumeroNFSe; {#T31549}
end;varToStr( copy( BoletoBancario.ConvenioBancario.NumeroContaCorrente, Length(BoletoBancario.ConvenioBancario.NumeroContaCorrente), 1));
FieldByName('NomeSacado').Value := IntToStr(BoletoBancario.CodigoCliente)+' - '+BoletoBancario.NomeCliente;
FieldByName('RuaSacado').Value := oCds_TitulosSelecionados.FieldByName('CLN_ENDERECO').AsString+', Nº '+
oCds_TitulosSelecionados.FieldByName('CLN_NUMERO').AsString;
cepCliente := FormatMaskText('99999-999;0;', oCds_TitulosSelecionados.FieldByName('CEP_CEP').AsString);
FieldByName('CidadeEstadoCep').Value := cepCliente+' '+
BoletoBancario.CidadeCliente+'-'+
BoletoBancario.EstadoCliente;
Carteira := Codig";
// result will be an iterator over tuples containing the start and end indices for each match in the string
let result = regex.captures_iter(string);
for mat in result {
println!("{:?}", mat);
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Rust, please visit: https://docs.rs/regex/latest/regex/