Nagrywarki |
Pliki |
Dyski twarde |
Recenzje |
Księgarnia |
Biosy |
Artykuły |
Nagrywanie od A do Z |
Słownik |
FAQ
|
||
|
Komputery - oprogramowanie i sprzęt Pytania i problemy niezwiązane z nagrywaniem, backupem i grami. |
|
Opcje związane z dyskusją | Tryby wyświetlania |
04.07.2013, 07:42 | #1 |
HDmaniak
CDRinfo VIP
Data rejestracji: 20.10.2002
Lokalizacja: Łódź
Posty: 8,859
|
Wyrażenia regularne i zamienianie...
Mam pliczek .xml, w którym chciałbym zmienić wyrażenia:
<Telefon>xxx</Telefon> na: <Telefon></Telefon> Czyli po prostu usunąć zawartość tagów. Ściągnąłem do tego celu Notepad++, bo podobno ma rozbudowaną szukajkę. Wpisywałem na różne sposoby, zaznaczając wyrażenia regularne... <Telefon>.</Telefon> i <Telefon>*.</Telefon> i <Telefon>.*</Telefon> Ale nic nie pomaga, a w którejś opcji sprawił, że ucinał mi dalszą część pliku od pewnego momentu... Nie wiem jak to ugryźć . |
#ads | |
CDRinfo.pl
Reklamowiec
Data rejestracji: 29.12.2008
Lokalizacja: Sieć globalna
Wiek: 31
Posty: 1227
|
|
04.07.2013, 08:42 | #2 |
Team Member
Zlotowicz
Data rejestracji: 18.10.2002
Lokalizacja: malopolska
Posty: 4,175
|
W Twoim przypadku:
Szukaj: <Telefon>[^<]*</Telefon> Zamień: <Telefon></Telefon> lub bardziej ogólnie, bez podawania taga: Szukaj: <(.*)>[^<]*</(.*)> Zamień: <\1></\2> |
04.07.2013, 08:50 | #3 |
Hibernant
CDRinfo VIP
Data rejestracji: 24.06.2004
Posty: 17,115
|
Po co szukałeś całego wyrażenia? Trzeba było poszukać jego część.
I chyba można zamienić na <Telefon />.
__________________
Wszystko co chciałbyś wiedzieć o: | PSX | PS2 | PS3 | Xbox | FF000000000003010101010003010000000003010000030000 00000003010000000003010100000003010101010003010000 00000300010101010300000000000301010000000300000001 01030101010100030101000000030000000000030100000000 03000001010103000000000003010100000003000000000103 01000000000301010000000301010000000300000000000301 01010100030000000000030101000000030000000001030003 01000000000301000000030100000000030000000101030100 00000003010000030100000000030100010003010100000003 00000000000300000000000300010301000000000301000003 00000001010301010100000301010000000300000000000301 00000000030000000101030000000001030101000000030101 000000030101000000FF |
04.07.2013, 08:56 | #4 |
Team Member
Zlotowicz
Data rejestracji: 18.10.2002
Lokalizacja: malopolska
Posty: 4,175
|
Co rozumiesz przez część? Jakiś przykład?
|
04.07.2013, 09:08 | #5 |
Hibernant
CDRinfo VIP
Data rejestracji: 24.06.2004
Posty: 17,115
|
Chodzi mi o to, że Smartek szukał "<Telefon>xxx</Telefon>" (rozumiem, że w miejsce xxx coś wpisał). Ale skoro takie wyrażenie może w pliku nie występować we właśnie takiej postaci, powinien więc poszukać jedynie po jego kawałku, czyli np. "<telefon".
__________________
Wszystko co chciałbyś wiedzieć o: | PSX | PS2 | PS3 | Xbox | FF000000000003010101010003010000000003010000030000 00000003010000000003010100000003010101010003010000 00000300010101010300000000000301010000000300000001 01030101010100030101000000030000000000030100000000 03000001010103000000000003010100000003000000000103 01000000000301010000000301010000000300000000000301 01010100030000000000030101000000030000000001030003 01000000000301000000030100000000030000000101030100 00000003010000030100000000030100010003010100000003 00000000000300000000000300010301000000000301000003 00000001010301010100000301010000000300000000000301 00000000030000000101030000000001030101000000030101 000000030101000000FF |
04.07.2013, 09:47 | #6 |
Author
Zlotowicz
Data rejestracji: 29.03.2003
Lokalizacja: The World
Posty: 16,809
|
Smartek raczej chcial wyszukac wszystkie wyrazenia w danych tagach i usunac to, co jest pomiedzy tagami
dlatego potrzebowal uzycia wyrazen globalnych tym samym wyszukiwanie fragmentu taga raczej nie pomoze |
04.07.2013, 11:09 | #7 |
Stały bywalec ;)
Data rejestracji: 16.05.2013
Lokalizacja: 8 km od Ediego
Posty: 195
|
Smartek, przed operacją na XML możesz otworzyć plik w Opera. Dość dobrze sprawdza poprawność XML i dzięki temu regexp niczego nie utnie.
|
08.07.2013, 08:15 | #8 |
HDmaniak
CDRinfo VIP
Data rejestracji: 20.10.2002
Lokalizacja: Łódź
Posty: 8,859
|
Bartez i Nimal zrozumieli poprawnie . Bartez, dziękuję za pomoc.
|
08.03.2014, 18:17 | #9 | ||
logged out
CDRinfo VIP
Data rejestracji: 12.07.2003
Lokalizacja: /home
Posty: 12,518
|
Potrzebuję w PHP za pomocą wyrażeń regularnych wyciągnąć dla pierwszego przypadku Napis4 i Napis5, i dla drugiego przypadku Napis2 i Napis3. Ktoś ma pomysł jak się do tego zabrać? Dodam, że zmienną którą chcę obrobić może mieć raz pierwszą formę, a raz drugą. Dodam jeszcze, że w pierwszym jak i w drugim przypadku Napis1 jest zawsze stały.
__________________
XMPP: andrzej(at)czerniak.info.pl Ostatnio zmieniany przez andy : 08.03.2014 o godz. 18:24 |
||
01.04.2014, 15:08 | #10 |
hexadecymalny
Data rejestracji: 23.11.2012
Lokalizacja: Warszawa
Posty: 50
|
@andy
A pomiędzy tymi ciągami są spacje? Jeżeli tak, to można to pociąć względem spacji: Kod:
$arr = explode(" ", $zmienna); Kod:
if(count($arr)==5) Kod:
echo $arr[3].' '.$arr[4] |
02.04.2014, 18:16 | #11 |
logged out
CDRinfo VIP
Data rejestracji: 12.07.2003
Lokalizacja: /home
Posty: 12,518
|
Sprawa już nieaktualna ale dzięki!
Zrobiłem to troszeczkę inaczej
__________________
XMPP: andrzej(at)czerniak.info.pl |
|
|
Podobne dyskusje | ||||
Dyskusja | Autor | Forum | Odpow. | Ostatni Post |
Wyrażenia Regularne | tedew | Off topic | 5 | 27.06.2007 17:11 |
Zamienianie ikon w win XP | kizio | Off topic | 16 | 27.02.2003 20:27 |