Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Wyrażenia regularne] Wszystkie znaki za wyjątkiem jakiegoś
wojckr
post 6.04.2008, 21:45:24
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 6.05.2007
Skąd: Wrocław

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


Witam,

może Wy będziecie w stanie mi pomóc.
Mam taki string
  1. <?php
  2. $str='"abc def" "ghi jkl"';
  3. ?>

Chcę wyciągnąć z niego wszystkie znaki zawierające się pomiędzy ", za wyjątkiem "
Próbuję tak:
  1. <?php
  2. preg_match('/".*"/',$str,$match);
  3. ?>

ale wyłapuje mi wszystko, czyli "abc def" "ghi jkl", a ja chcę aby wyłapało "abc def" i nic więcej.

Dziękuję z góry za pomoc.

Ten post edytował wojckr 21.07.2008, 11:20:22
Go to the top of the page
+Quote Post
kossa
post 6.04.2008, 21:47:58
Post #2





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


A nie prościej usunąć wszystkie znaki cudzysłowie z tekstu, np. str_replace" title="Zobacz w manualu PHP" target="_manual to tak na szybko bez wytężania umysły na wyrażenia regularne a zostanie Tobie tekst który oczekujesz smile.gif

Łukasz


--------------------
Go to the top of the page
+Quote Post
wojckr
post 6.04.2008, 22:00:26
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 6.05.2007
Skąd: Wrocław

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


Może niedobrze wytłumaczyłem, nie chodzi mi o to, aby usunąć ", tylko żeby wyłapać wszystko co się znajduje pomiędzy pierwszym a drugim ", a owe wszystko to: dowolny znak za wyjątkiem "
Go to the top of the page
+Quote Post
isso
post 6.04.2008, 22:25:02
Post #4





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

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


Z tego co mi się wydaje to nie da rady tego zrobić funkcjami regularnymi...

Jeżeli jestes pewien, że ciag bedzie zawsze w postaci: " cos cos " " kkk sss " to zrób expolde()" title="Zobacz w manualu PHP" target="_manual ciagu wzgledem znaku " i przeczytaj z tablicy o indeksie 1 smile.gif i sprawa załatwiona smile.gif

Ten post edytował isso 6.04.2008, 22:25:30


--------------------
Go to the top of the page
+Quote Post
marcio
post 6.04.2008, 22:39:27
Post #5





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Albo trim() na "


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
isso
post 6.04.2008, 23:14:33
Post #6





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

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


trim()" title="Zobacz w manualu PHP" target="_manual jest chyba nieodpowiedni... bo on chce tylko tekst z pierwszego apostrofu


--------------------
Go to the top of the page
+Quote Post
Crozin
post 7.04.2008, 06:23:53
Post #7





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


  1. <?php
  2. $str = 'to "jest tekst" a "ala ma kota" i sa happy...';
  3.  
  4. preg_match_all('#"(.*?)"#Usi', $str, $results);
  5.  
  6. echo '<pre>' . print_r($results, true) . '</pre>';
  7. ?>
Potem ewentualnie dla każdej konkretnej zmiennej możesz dać:
  1. <?php
  2. $zmienna = trim($zmienna, '"');
  3. ?>
aby się pozyć cudzysłowi z końca/początku
Go to the top of the page
+Quote Post
wojckr
post 7.04.2008, 17:14:56
Post #8





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 6.05.2007
Skąd: Wrocław

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


Niestety, wyławia:
abc abc" "abc abc

A więc jeszcze raz: Jakie wyrażenie regularne dopasuje każdy znak za wyjątkiem jakiegoś?

Tzn np. wszystkie znaki za wyjątkiem "a"
albo wszystkie znaki za wyjątkiem "b"?
Go to the top of the page
+Quote Post
Crozin
post 9.04.2008, 14:24:11
Post #9





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


  1. <?php
  2. preg_match('#[^a]+#', $zmienna); //wszystko z wyjatkiem "a"
  3. preg_match('#[^d]+#', $zmienna); //wszystko z wyjatkiem "d"
  4. ?>
Go to the top of the page
+Quote Post
nevt
post 9.04.2008, 20:07:58
Post #10





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


Proszę poprawić temat na zgodny z zasadami publikowania na forum Przedszkole!

Brakuje tagu.


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
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: 10.07.2025 - 05:41