Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Wyrażenia regularne] Wszystkie znaki za wyjątkiem jakiegoś
wojckr
post
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
 
Start new topic
Odpowiedzi (1 - 9)
kossa
post
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
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
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
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
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
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
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
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
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 Aktualny czas: 21.08.2025 - 21:40