Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyrażenia regularne
@rtur
post 19.07.2008, 11:03:01
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 3
Dołączył: 23.02.2006

Ostrzeżenie: (0%)
-----


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]


--------------------
Artur
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
blue_boy
post 20.07.2008, 10:47:27
Post #2





Grupa: Zarejestrowani
Postów: 25
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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>
Go to the top of the page
+Quote Post
@rtur
post 20.07.2008, 13:43:34
Post #3





Grupa: Zarejestrowani
Postów: 254
Pomógł: 3
Dołączył: 23.02.2006

Ostrzeżenie: (0%)
-----


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?

Ten post edytował @rtur 20.07.2008, 13:47:23


--------------------
Artur
Go to the top of the page
+Quote Post
blue_boy
post 20.07.2008, 15:00:29
Post #4





Grupa: Zarejestrowani
Postów: 25
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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ą.
Go to the top of the page
+Quote Post
ddiceman
post 23.07.2008, 12:28:09
Post #5





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 13:09