Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Warunki w regex
ufo1990
post 25.08.2022, 09:42:02
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 26.07.2019

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


Mam poniższy tekst i chce z niego wyciągnąć tylko adresy e-mail, które są po słowie Kontakt. Poniższy kod działa pod warunkiem że występuje drugi adres e-mail w kolejnej linii. Kod nie działa gdy występuje po słowie Kontakt tylko jeden adres e-mail.

  1. <?php
  2. $text = 'Jakiś tekst Jakiś tekst Jakiś tekstJakiś tekst
  3.  
  4. Kontakt: <a href="mailto:1@gmail.sbr">1@gmail.com</a>,
  5. <a href="mailto:2@onet.pl">2@onet.pl</a>
  6.  
  7. Jakiś tekst Jakiś tekst Jakiś tekst Jakiś tekst
  8. <a href="mailto:3@gmail.eu">3@onet.eu</a>
  9. Jakiś tekst Jakiś tekst Jakiś tekst Jakiś tekst
  10. ';
  11. preg_match_all("/(Kontakt: +\K[-.\w]+@[-.\w].*)+([?=\r\n][-.\w]+@[-.\w].*)/", strip_tags($text), $matches);
  12. foreach($matches[0] as $val){
  13. echo $val;
  14. }


Przerobiłem regex i działa. Przesyłam kod gdyby komuś się przydało.

  1. preg_match_all("/((Kontakt: +\K[-.\w]+@[-.\w].*)(\n(?=[-.\w]+@[-.\w]).*|.))/", strip_tags($text), $matches);
  2. foreach($matches[0] as $val){
  3. echo $val;
  4. }


Ten post edytował ufo1990 25.08.2022, 08:22:02
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: 27.04.2024 - 19:25