Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrażenia regularne
Forum PHP.pl > Forum > Po stronie przeglądarki
@rtur
Witam

Wyrażenia regularne mnie na razie przerastają.

Mam Ci ja sobie coś takiego:

  1. imgtab[1]= new Array('1577','k7581258.jpg','','','640','484','120','90','1876')
  2. imgtab[2]= new Array('1578','k7581259.jpg','','','640','480','120','90','1876')
  3. imgtab[3]= new Array('1579','k7581276.jpg','','','616','468','120','91','1876')
  4. imgtab[4]= new Array('1580','k7581278.jpg','','','634','466','120','88','1876')
  5. imgtab[5]= new Array('1581','k7581282.jpg','','','538','598','116','120','1876')


i nie wiem, jak z tego wyciągnąć tylko k[cyfry].jpg, i usunąć resztę ?
chodzi o to że chcę w notepad++ korzystając z funkcji zamień zrobić z tego ciągi
  1. http://serwer/fotki/k[cyfry].jpg]
blue_boy
Ale Ty masz tutaj do czynienia z tablicami - nie potrzebujesz wyrażeń regularnych aby wyciągnąć element tablicy. Możesz to zrobić w następujący sposób:
Kod
<html>
<head>
</head>
<body>
<script type="text/javascript">
imgtab=new Array(); //deklaracja tablicy
imgtab[1]= new Array('1577','k7581258.jpg','','','640','484','120','90','1876') //dodawanie kolejnych elementów do tablicy - również tablic
imgtab[2]= new Array('1578','k7581259.jpg','','','640','480','120','90','1876')
imgtab[3]= new Array('1579','k7581276.jpg','','','616','468','120','91','1876')
imgtab[4]= new Array('1580','k7581278.jpg','','','634','466','120','88','1876')
imgtab[5]= new Array('1581','k7581282.jpg','','','538','598','116','120','1876')
var x=imgtab[1][1]; //definicja zmiennej x. Zostaje jej przypisana wartość k7581258.jpg (czyli druga wartość tablicy wewnętrznej - elementu tablicy imgtab o indeksie [1])
document.write(x); //dowód, że faktycznie został odczytany żądany element
</script>
</body>
</html>
@rtur
Nie zrozumieliśmy się chyba smile.gif

Mam w pliku zapisane w pewnym miejscu:

  1. imgtab[1]= new Array('1577','k7581258.jpg','','','640','484','120','90','1876')
  2. imgtab[2]= new Array('1578','k7581259.jpg','','','640','480','120','90','1876')
  3. imgtab[3]= new Array('1579','k7581276.jpg','','','616','468','120','91','1876')
  4. imgtab[4]= new Array('1580','k7581278.jpg','','','634','466','120','88','1876')
  5. imgtab[5]= new Array('1581','k7581282.jpg','','','538','598','116','120','1876')
  6. ...
  7. imgtab[100]= new Array('1680','k7581385.jpg','','','538','598','116','120','1876')


edytuje go notepadem++ i chce aby w pliku textowym zostało mi w tym miejscu tylko

  1. k7581258.jpg
  2. k7581259.jpg
  3. k7581276.jpg
  4. k7581278.jpg
  5. k7581282.jpg
  6. ...
  7. k7581385.jpg


Teraz pytanie jakiego wyrażenia regularnego użyć w znajdź/zamień na by osiągnąć zamierzony efekt?
blue_boy
Jeżeli zależy Ci na otrzymaniu pliku *.txt, z listą:
k7581258.jpg
k7581259.jpg
k7581276.jpg
k7581278.jpg
k7581282.jpg
...
k7581385.jpg
wystarczy utworzyć pętlę, która wybierze wszystkie te elementy i wyświetli na ekranie jeden pod drugim, a następnie skopiujesz je sobie do pliku i sprawa załatwiona. Jeżeli jednak koniecznie musisz to zrobić za pomocą notepad++, to niestety, nie korzystam z tego edytora, więc pytanie do tych co się tym narzędziem posługują.
ddiceman
Wyrazenie regularne zalezy od standardu interpreteacji POSIX/PERL

nie jestem wiec pewien jak w notepad++, bo sam korzystam z editplusa, ale jesli Ci to pomoze:

Find what:
CODE
imgtab\[[0-9]+]= new Array\('[0-9]+','([kjpg.0-9]+)',.*


Replace with:
CODE
\1
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.