lostyazilim
tr.link

Regex sorunu

7 Mesajlar 1.030 Okunma
lstbozum
tr.link

Elysion59 Elysion59 WM Aracı Kullanıcı
  • Üyelik 02.11.2018
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci
  • Konum İstanbul Avrupa
  • Ad Soyad U** P**
  • Mesajlar 20
  • Beğeniler 5 / 2
  • Ticaret 0, (%0)


Name:Adı Soyadı
\r\n ◀
E-Mail: 1denememail@hotmail.com
\r\n
Hash: 12234343242342344, 00000, AC:TRUE IP: 127.0.0.1,


Merhaba arkadaşlar elimde bu tarz bir yazı var ve ben sadece Name:,E-Mail:,IP almak istiyorum fakat yanlarında bulunan html karakterlerinide alıyor ve E-mail de a href i felan da alıyor sadece maili almak istiyorum ve aradakileri atlayıp IP ye geçemiyorum. Kurmuş olduğum regex şu şekilde dir.

Name:\S*(?.*?)\S*\s*E-Mail:\S*(?.+)\S*\s*Hash:\S*(?[^,;]+)\S(?[^,;]+)?\S*\s*(.*)IP:\S*\s*(?.*),

Sizce neyi eksik yanlış yapıyorum?
 

 

wmaraci
reklam

capscroll capscroll WM Aracı Kullanıcı
  • Üyelik 02.08.2019
  • Yaş/Cinsiyet 23 / E
  • Meslek Öğrenci
  • Konum Kahramanmaraş
  • Ad Soyad A** K**
  • Mesajlar 164
  • Beğeniler 41 / 54
  • Ticaret 0, (%0)
strip_tags() fonksiyonunu kullanabilirsiniz.


//Kod-1
$metin = '

Deneme paragrafı.

' .
'Başka bir metin';
echo strip_tags($metin);

//Kod-2
//

ve 'ya izin verelim
echo strip_tags($metin, '

');
?>


Çıktı-1: Deneme paragrafı. Başka bir metin
Çıktı-2:

Deneme paragrafı.

Başka bir metin
 

 

Elysion59 Elysion59 WM Aracı Kullanıcı
  • Üyelik 02.11.2018
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci
  • Konum İstanbul Avrupa
  • Ad Soyad U** P**
  • Mesajlar 20
  • Beğeniler 5 / 2
  • Ticaret 0, (%0)




preg_match_all($pattern, $content, $results);

$result = strip_tags($ results);

şeklinde atama yaptım fakat kabul etmedi nedense

Edit:

strip_tags($results['name'][0]) olarak kullandığım vakit düzeldi teşekkür ederim. Aradakiler yok sayma işini nasıl hallede bilirim sizce ve sizce mantıklı bir regex sorgusu mu yapmışım ?
 

 

capscroll capscroll WM Aracı Kullanıcı
  • Üyelik 02.08.2019
  • Yaş/Cinsiyet 23 / E
  • Meslek Öğrenci
  • Konum Kahramanmaraş
  • Ad Soyad A** K**
  • Mesajlar 164
  • Beğeniler 41 / 54
  • Ticaret 0, (%0)
$result = strip_tags($ results);
Parantez içerisindeki boşluk kodda mı varsa yoksa buraya yazarken mi oldu? :)

preg_match_all() fonksiyonu çıktıları dizi şeklinde verir, mesela $results[0] ile ilk diziyi alabilirsiniz. Biz patternimize göre temizlenmiş diziyi alacağımız için $result[1] kullanabiliriz, bu durumda $result değişkeninde patternimize göre temizlenmiş diziyi yani ikinci diziyi alarak birde HTML süzgecinden geçirelim.


echo strip_tags($results[0][0]); //Bu preg fonksiyonunun düz verdiği HTML etiketlerinden arındırılmış sonuç olacaktır. İlk dizinin ilk elemanını yazdırdık.
echo strip_tags($results[1][0]); //Bu preg_match_all() fonksiyonunun patternimize göre temizlediği HTML etiketlerinden arındırılmış sonuç olacaktır. İkinci dizinin ilk elemanını yazdırdık.


Ayrıca preg_match_all() fonksiyonu ile HTML etiketlerini de temizleyebilirsiniz fakat strip_tags() daha iyi bir alternatif.
 

 

wmaraci
wmaraci

capscroll capscroll WM Aracı Kullanıcı
  • Üyelik 02.08.2019
  • Yaş/Cinsiyet 23 / E
  • Meslek Öğrenci
  • Konum Kahramanmaraş
  • Ad Soyad A** K**
  • Mesajlar 164
  • Beğeniler 41 / 54
  • Ticaret 0, (%0)

Elysion59 adlı üyeden alıntı

preg_match_all($pattern, $content, $results);

$result = strip_tags($ results);

şeklinde atama yaptım fakat kabul etmedi nedense

Edit:

strip_tags($results['name'][0]) olarak kullandığım vakit düzeldi teşekkür ederim. Aradakiler yok sayma işini nasıl hallede bilirim sizce ve sizce mantıklı bir regex sorgusu mu yapmışım ?


Düzenlemenizi şimdi gördüm kusura bakmayın, regex konusunda net bir şey söyleyemem çünkü bu metin/kod süzme işlemlerini oldum olalı sevmemiş ve tam anlayamamışımdır, elimden geldiğince kaçıyorum :)
 

 

Elysion59 Elysion59 WM Aracı Kullanıcı
  • Üyelik 02.11.2018
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci
  • Konum İstanbul Avrupa
  • Ad Soyad U** P**
  • Mesajlar 20
  • Beğeniler 5 / 2
  • Ticaret 0, (%0)

capscroll adlı üyeden alıntı

Düzenlemenizi şimdi gördüm kusura bakmayın, regex konusunda net bir şey söyleyemem çünkü bu metin/kod süzme işlemlerini oldum olalı sevmemiş ve tam anlayamamışımdır, elimden geldiğince kaçıyorum :)


Yardımınız için teşekkür ediyorum. Bende emin olun anlayamadım bir yapıyorum oluyor bazen yaptığım olmuyor baya karışık geliyor :D
 

 

BarisYILMAZ BarisYILMAZ WM Seo Tool Kullanıcı
  • Üyelik 09.04.2015
  • Yaş/Cinsiyet 41 / E
  • Meslek Bilgisayar Teknik Servis
  • Konum İstanbul Avrupa
  • Ad Soyad B** Y**
  • Mesajlar 394
  • Beğeniler 207 / 132
  • Ticaret 5, (%100)
(?i).*
Name:(.*)\s
|[^(mailto:)>|+][a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+|:\s(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})


Or: https://regex101.com/r/l4qVuv/1
senyeterkiiste Elysion59

kişi bu mesajı beğendi.

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al