Pokaż wyniki 1 do 4 z 4

Temat: PERL Splitowanie z wylaczeniem stringu pomiedzy danymi znakami

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Domyślnie PERL Splitowanie z wylaczeniem stringu pomiedzy danymi znakami

    Witam,

    Mam problem nad którym głowie się od dłuższego czasu. Mianowicie:

    mam tekst:

    $text = 'SAR001,"","Cimetrix, Inc","Bob Smith","CAM",N,8,1,0,7,"Error, Core Dumped" '

    chce go rozdzielic po separatorze , z wyłączeniem tekstu pomiedzy "".
    Posłużylem się takim sposobem:

    Kod:
    @new = ();
       push(@new, $+) while $text =~ m{
       "([^\"\\]*(?:\\.[^\"\\]*)*)",? # groups the phrase inside the quotes
        | ([^,]+),?
        | ,
       }gx;
       push(@new, undef) if substr($text,-1,1) eq ',';
    Wszystko jest ok z tym ze tekst chce otrzymac w postaci:

    Kod:
    "SAR001";"";"Cimetrix, Inc";"Bob Smith";"CAM";"N";"8";"1";"0";"7";"Error, Core Dumped";
    probowalem zastosowac:
    Kod:
    foreach my $val (@new) {
       
      print "\"$val\";";
      }
    Jednak ostatnia wartość w linice zapisywana jest ze nakiem końca lini w wyniku czego otrzymuje:


    Kod:
    "SAR001";"";"Cimetrix, Inc";"Bob Smith";"CAM";"N";"8";"1";"0";"7";"Error, Core Dumped
    ";
    Całkowite usunięcie znaku końca lini nie rozwiązuje problemu ponieważ $text w niektórych przypadkach jest wielo liniowy.
    Troche zagmatwane ale mam nadzieje ze ktos pomoze.
    Ostatnio edytowane przez dafian : 11-22-2010 - 14:58

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj