Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

Regex ustalarına soru

iyinet

Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,034
Açılan Konu
485
Tepki puanı
75
Konum
SEO
x. abcde, fghij. y. (aaa) 1. (bbbb) (ccccc) dddd: eeeeeeeeeeeeeeeeeeee.
x. abcde, fghij. y. (aaa) 1. eeeeeeeeeeeeeeeeeeee.
x. abcde, fghij. y. eeeeeeeeeeeeeeeeeeee.
x. abcde. y. eeeeeeeeeeeeeeeeeeee.

Bu satırların tümünü x. ve y. göre 2 ye bölebilecek PHP için regex e ihityacım var. Bu regex i preg_match_all fonsiyonunda kullanacağım.

Örnek vereyim
1.satır regex ten sonra şu şekilde olmalı
x. abcde, fghij.
y. (aaa) 1. (bbbb) (ccccc) dddd: eeeeeeeeeeeeeeeeeeee.

2.satır regex ten sonra şu şekilde olmalı
x. abcde, fghij.
y. (aaa) 1. eeeeeeeeeeeeeeeeeeee.

4. satır bu şekilde
x. abcde.
y. eeeeeeeeeeeeeeeeeeee.
 

atay

0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Açılan Konu
298
Tepki puanı
36
regex bilemiyorum fakat, programın gidişatına uyar mı bilmem, şöyle bir yöntemde kullanabilirsiniz:

$bolunmus=explode("y.","x. abcde, fghij. y. (aaa) 1. (bbbb) (ccccc) dddd: eeeeeeeeeeeeeeeeeeee.");
echo $bolunmus[0]."<br>".$bolunmus[1];
 

iyinet

Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,034
Açılan Konu
485
Tepki puanı
75
Konum
SEO
regex bilemiyorum fakat, programın gidişatına uyar mı bilmem, şöyle bir yöntemde kullanabilirsiniz:

$bolunmus=explode("y.","x. abcde, fghij. y. (aaa) 1. (bbbb) (ccccc) dddd: eeeeeeeeeeeeeeeeeeee.");
echo $bolunmus[0]."<br>".$bolunmus[1];

Oncelikle öneri için teşekkürler, ancak split yada explode yapma şansım yok.

Yukarıda verdiğin kod örneğin şu satır için yanlış çalışacaktır:
x. abcde, fghiy. y. (aaa) 1. (bbbb) (ccccc) dddd: eeeeeeeeeeeeeeeeeeex.
 

Raiden

0
Onaylı Üye
Üye
Katılım
13 Ocak 2005
Mesajlar
339
Açılan Konu
23
Tepki puanı
0
aşağıdaki işinizi çözer. dönen dizilere göre işlem yaparsınız kolay gelsin

PHP:
<?php
$kaynak ="x. abcde, fghij. y. (aaa) 1. (bbbb) (ccccc) dddd: eeeeeeeeeeeeeeeeeeee.
x. abcde, fghij. y. (aaa) 1. eeeeeeeeeeeeeeeeeeee.
x. abcde, fghij. y. eeeeeeeeeeeeeeeeeeee.
x. abcde. y. eeeeeeeeeeeeeeeeeeee.";
preg_match_all("#x\.(.*)y\.(.*)#im",$kaynak,$return);
//echo "<pre>";print_r($return);
for ($i=0; $i<count($return[1]); $i++)
{
	echo "x. ",$return[1][$i],"<br>";
	echo "y. ",$return[2][$i],"<br>";
	echo "---------<br>";
}
?>
 
Üst