Görüntülenme: 30775
RegEx ve .NET
2007/08/20 5:42
Bildir! Alıntı ile cevap yaz Oyla! (0 oy)

VB.NET kullanılarak standart "Bul-Değiştir" işlemleri için, "String" türündeki bir değişkenin metotlarından yararlanılabilir.

Dim strMetin1 As String = "Mustafa Birgin ve Takıntıları"
Dim strMetin2 As String = strMetin1.Replace("Mustafa", "M.") 

Bunun sonucunda,
strMetin2 = "M. Birgin ve Takıntıları"
olur.

Ancak diyelim ki, bir metin içerisinde kullanılan ve uzunluğu bilinmeyen bir ifadeyi, farklı amaçlarda kullanmak için, yukarıdaki yöntem çok yetersiz kalabilir. Örnek olarak, metin içerisinde geçen, [link:Adres] değerini gerçekte HTML linki olarak elde etmek için özel fonksiyonlar yazmak gerekebilir.

İşte bugün, öyle bir duruma geldim ve özel fonksiyonun nasıl olabileceğini düşündüm... Daha önceden, VB6 'da basit bir yapı geliştirmiştim; onu buraya uyarlayabilirdim... Düşünmeye devam ettim... 

Daha önce öğrendiğim, FrontPage 2003 'te yer alan Normal İfadeler 'i düşündüm... Sonra, bu fonksiyonları internette bulabileceğimi düşündüm ve "Normal Expressions" anahtar kelimesiyle arama yaptım. Daha iyi bir sonuç, "Regular Expressions" anahtar kelimesiyle karşıma çıktı.

Ve, öteden beri .NET kütüphanelerinde karşılaştığım ve ürktüğüm RegEx 'in aslında Regular Expression ifadesinin kısaltılmışı olduğunu anladığımda hayrette kaldım.  

Bu sefer RegEx 'i araştırmaya başladım; zira metin işlemlerinde büyük rahatlık sağladığını ve şu anda istediğim işlemi bununla yapabileceğime inanıyordum.

Ve işte, şimdi, bir taraftan öğrendiklerimi, diğer taraftan buraya yazıyorum. 


Dim userName As String = "Birgin, Mustafa"
Dim re As New RegEx( "(\w+),\s(\w+)" )
userName = re.Replace( userName, "$2 $1" )
Response.Write( userName )

Yukarıdaki kodlamada sonucunda, sayfaya "Mustafa Birgin" ifadesi yazılacaktır.

() içerisindeki ifade ayrı bir grup gibi değerlendirilebilir. Yani yukarıdaki  "(\w+),\s(\w+)" deseninde bir kelime "(\w+)" devamında ", " (virgül ve boşluk) ",\s" ve ardından yine bir kelime "(\w+)" gelmektedir. Daha sonra, bu desen, userName değişkenine uygulanmakta ve "$2 $1" grup temsilcileriyle, grup elemanlarının yerleri değiştirilmektedir. Yani, "$2" 2. grubu (Mustafa) ve "$1" 1. grubu (Birgin) temsil etmektedir. 
Genel olarak "$N", N. parantez grubunu ifade eder (N, pozitif bir sayı). Not olarak, "$0" desene uygun tüm metni ifade eder.

Dolayısıyla, userName="Mustafa Birgin" olacaktır.

Şimdi, kullanılan özel karakterlerin anlamına bakalım...

.

Match any character except newline

Herhangi bir karakter (yeni satır hariç)

\w

Match any alphanumeric character

Herhangi bir sayısal olmayan karakter (word)

\s

Match any whitespace character

Boşluk karakteri (space)

\d

Match any digit

Herhangi bir rakam (digit)

\b

Match the beginning or end of a word

Bir kelimenin başı veya sonu (begin)

^

Match the beginning of the string

Satır başı

$

Match the end of the string

Satır sonu

 

Ve daha başka karakterler...

*

Repeat any number of times

Herhangi sayıda

+

Repeat one or more times

Bir veya daha fazla

?

Repeat zero or one time

Sıfır veya daha fazla

{n}

Repeat n times

n defa

{n,m}

Repeat at least n, but no more than m times

n ve üzeri; ancak m 'den daha büyük değil

{n,}

Repeat at least n times

En az n defa

 

Ve negatif durumlar...

\W

Match any character that is NOT alphanumeric

Herhangi bir karakter; fakat sayısal olmayan değil. (Yani sayısal.) :)

\S

Match any character that is NOT whitespace

Herhangi bir karakter; fakat boşluk değil

\D

Match any character that is NOT a digit

Herhangi bir karakter; fakat rakam değil

\B

Match a position that is NOT the beginning or end of a word

Herhangi bir karakter; fakat satır başında ya da satır sonunda değil

[^x]

Match any character that is NOT x

Herhangi bir karakter; fakat x değil (Yani x dışında bir karakter.)

[^aeiou]

Match any character that is NOT one of the characters aeiou

Herhangi bir karakter; fakat aeiou değil (Yani a,e,i,o,u dışında bir karakter)

Özel karakterlerin anlamını iptal etmek için önüne "\" karakteri konulur. Örneğin "\^" ya da "\$" gibi.

Ve örnekler...

  • \bbirgin\b
    "birgin" kelimesini bulur; mbirgin, ayrı bir kelime olmadığı için, eşleşmez.
  • \bBen\b.*\bBirgin\b
    "Ben Mustafa Birgin" ifadesiyle eşleşebilir.
  • \b\w{5,6}\b 
    5 veya 6 karakterli kelimeler
  • ^\w*
    Satırdaki ilk kelime
  • (\d{1,3}\.){3}\d{1,3}
    IP adresi (basit yöntem)
  • \b(\w+)\b\s*\1\b
    Tekrarlanan kelimeler
  • \b\w+(?=gin\b)
    "gin" ile biten bir kelimenin ön kısmı.
  • \d{3}(?!\d)
    3 rakam ve sonrasında rakam olmayan bir karakter.
  • (?<=<(\w+)>).*(?=<\/\1>)
    HTML tag (im) arasındaki metin
  • \b\d\d\d-\d\d\d\d ya da \b\d{3}-\d{4}
    7 rakamlı telefon
  • \b\w{6}\b
    6 karakterli bir kelime

Hayli uzun sürdü! Başlarda bu kadar uğraşacağımı bileydim, başlar mıydım; bilemiyorum.
Sanırım kendi özel fonksiyonumu yazmayı yeğlerdim; ama esnek olmazdı tabi! 
Ama şunu söylemeliyim ki, incelediğim kaynaklardan, çok az şey yazdım. Yani, çok daha fazlası var. Gerisi size kalmış... 

Derseniz ki, "Yazmak istediğin fonksiyon hani?"
Derim ki, "Bu bilgileri sindirmeden, kullanabileceğimden emin değilim! Şu an kafam karışık; beynim bunları kavramaya çabalıyor demek ki!"

Nasıl, başlarda dediğim gibi, önceden ürktüğüm kadar var mıymış?
Bence, yokmuş!

Yararlı olması dileğiyle...

---------------------------------
M. Birgin (Ağustos 2007)

Yararlanılan Kaynaklar:
http://aspnet.4guysfromrolla.com/articles/022603-1.aspx
http://www.codeproject.com/dotnet/RegexTutorial.asp


Şimdi de yeni bir ihtiyaç hasıl oldu. :P

RegEx.Replace metodunda, uygun tüm değerler topluca değiştirilmektedir. Oysa, ben bunları bireysel olarak değerlendirmek istiyorum. Yani, filtreye uygun değerleri, standart bir değerle değiştirmek yerine; her bir değeri ayrı ayrı işlemek istiyorum.
Ama yazık ki, RegEx 'in aralık tanımlamaları yok (ya da ben karşılaşmadım :P).
Yani şuradan şuraya kadar, uygun değer var mı, diye bakamıyorum.

Buna bir çözüm, metnin bir bölümü yeni bir değişkene aktarılarak, yeni değişken RegEx ile etkileşebilir.
Bu durumda, tüm değerlerin işlenmesi için, bir döngü oluşturulması gerekir.

Ya da, RegEx 'te uygun değerlerin bireysel olarak değerlendirilmesine olanak sağlayan MatchEvaluator sınıfı kullanılabilir.

Araştırmalarım sonucunda, oluşturduğum ve ihtiyacımı karşılayan örnek kullanım aşağıdadır.

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

 Protected Sub btnRun_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim strMetin1, strMetin2 As String
        strMetin1 = "<ul><li>Birinci Madde </li><li>İkinci Madde</li><li>Üçüncü Madde</li></ul>"       
       
        Dim MEvl As New MatchEvaluator(AddressOf MevlProcess)

        strMetin2 = Regex.Replace(strMetin1, "<li>(.*?)</li>", MEvl)
               
    End Sub

   
    Function MEvlProcess(ByVal m As Match) As String
        Static i As Integer
     
        i = i + 1
             
        Return "<li ID='ref" & i & "'>" & m.Groups(1).Value & "</li>"
               
    End Function

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


Ve işte, metin içerisinde [link:Adres] ibaresinin geçmesi durumunda, bunu normal HTML linkine dönüştüren kullanım:

Dim strHTML As String = txtHTML.Text
If Regex.IsMatch(strHTML, "\[link:(.*?)\]") = True Then
    strHTML = Regex.Replace(strHTML, "\[link:(.*?)\]", "<a href='$1'>$1</a>)
End If

Olay budur yani! :P


"Regular Expressions" konusunu hayli kapsamlı işleyen ve bu konuya adanmış bir site: http://www.regular-expressions.info/

Sitede, "Regular Expressions", çok sayıda teknolojiye göre (.NET, JavaScript, VBScript, Visual Basic 6, XMLSchema, Delphi, Java, C/C++, Perl, PHP, Phyton, ...) örneklenmektedir.

İngilizce kelime ezberleme oyunu: vav.mbirgin.com
Normal İfadeler
2007/06/14 4:16
Bildir! Alıntı ile cevap yaz Oyla! 8,5 (1 oy)

Microsoft Office FrontPage 2003 'te çok yetenekli bir "Bul ve Değiştir" özelliği mevcut. "Normal İfadeler" kullanılarak, zaman ve emek sıkıntılarını haylice azaltmak mümkün. Mesela ben, vaktiyle buradaki "Normal İfadeler" ile yapabileceğim işlemler için, ayrı program yazmıştım.

"Normal İfadeler"in bütün özelliklerini bu mesajda yazmam güç. Bu nedenle, önemsediğim birkaç "desen" ve bu desenlerde kullanılan özel karakterleri yazacağım. Daha sonraları, farklı kullanımlara ihtiyacım olursa, buraya da eklemeye gayret ederim.

Örnek olması açısından, diyelim ki, yüzlerce satırlık şöyle bir listemiz olsun:

.............................................
TEST:18, Mustafa Birgin- 021- Miyav Miyav
TEST::151, Mustafa Birgin- 102- Tiyatro
TEST::1356, Mustafa Birgin- 903- Hayvanlarla Nasıl Konuşulur
TEST::449, Mustafa Birgin- 043- LisAns: Listen & Answer
TEST::146, Mustafa Birgin- 505- English
TEST::13006, Mustafa Birgin- 9006- Bahşiş
TEST::2533, Mustafa Birgin- 3907- Cimriler ve Cömertler
TEST::55, Mustafa Birgin- 34408- Takıntı
TEST::125, Mustafa Birgin- 909- Müzik Eşliğinde Ritmik Yürüyüş
TEST::1902, Mustafa Birgin- 4010- 4 Yön
TEST::187, Mustafa Birgin- 0131- Forum
TEST::1363, Mustafa Birgin- 2012- Kişisel Gelişim
TEST::188, Mustafa Birgin- 3013- İnziva
TEST::1648, Mustafa Birgin- 2014- İşitsel Yapıtlar
TEST::2936, Mustafa Birgin- 0153- Dinleti
...........................................

Ve biz,  bu liste içerisinden, en sağdaki isimleri almak istiyoruz. Normal şartlar altında teker teker seçip silerek işlemleri yapmak işkence olabilir. Listeye bakıldığında, sabit metinlerin varlığı dikkatimizi çekiyor. Bunları otomatik olarak silsek bile, liste uzunsa geride kalan kısımlarla ilgilenmek, yorucu olacaktır.
İşte bunu, hızlı bir şekilde FrontPage ile çözmek mümkün. Örnek olarak, yukarıdaki metni kopyalayıp FrontPage 'e yapıştırarak işlemleri başlatabiliriz.

Şimdi, Düzen menüsünden "Değiştir" komutunu verelim.

Gelişmiş bölümünden "Normal İfadeler" kutusunu işaretleyelim.

Aranan kısma şu deseni yazalım: TEST.*Mustafa Birgin.*-.

Yeni Değer kısmını boş bırakalım.

Tümünü Değiştir komutunu verelim.

Ve geriye, bizim istediğimiz isimler kalıyor.

Sizi bilmem ama beni heyecanlandırdı.
Sizin de heyecanlanabilmeniz için, ihtiyacınız olduğunda denemeniz gerekebilir.

Aranan kısma yazdığımız ifadede (desen) bazı özel karakterler kullandık. İşte bu özel karakterlerin ne anlama geldiğini ve Normal İfadeler ile ilgili ayrıntılı bilgiyi, Office yardım dokümantasyonlarında bulabilirsiniz.
http://office.microsoft.com/tr-tr/frontpage/HP030923241055.aspx

Yararlı olması dileklerimle...

İngilizce kelime ezberleme oyunu: vav.mbirgin.com
RegExp ve Javascript
2011/03/19 5:23
Bildir! Alıntı ile cevap yaz Oyla! (0 oy)

Son günlerde JavaScript ile de kullanılabilen RegExp ifadelerine gereksinim duymaya başladım ve konuyu araştırmaya başladım.

Yer yer karşılaştığım bazı desenler ve ürettikleri sonuçları anlamakta güçlük çektim. O halde bilmediğim bazı noktalar olmalıydı, diye düşünerek daha detaylı araştırma ve incelemelere girişmek durumunda kaldım.

Ulaştığım sonuçları daha sonraları da gereksinebileceğimi öngörerek, çözümlediğim kısımları not etmenin uygun olabileceğine kanaat getirdim. Öyle ya, aynı meseleleri sil baştan araştırmak yerine, geçmiş bulgularımdan yararlansam fena mı olurdu? :)

Geçen senelerde bu "Regular Expressions" konusunu oluşturmakla pek bir akıllılık etmişim... Başkalarının işine yaradı mı bilmem ama, benim için ara ara uğradığım ve takıldığım meselelere hızla çözüm bulduğum bir başvuru kaynağı niteliğinde oldu ve olmaya devam ediyor. 

Neyse, sözü uzatmayayım; odaklanmam gereken kısmı unutacağım değilse. :)


Şu örnek beni haylice oyaladı:

var str = "Watch out for the rock!".match(/r?or?/g)

str then contains ["o","or","ro"]

Burada ilk dikkatimi çeken husus, sonucun bir dizi şeklinde str değişkenine atanmış olmasıdır.
Ne güzel ki, bunun g parametresi sayesinde oluştuğunu anlamam uzun sürmedi. 

g (global search): The global search flag makes the RegExp search for a pattern throughout the string, creating an array of all occurrences it can find matching the given pattern.

Gelgelelim, üretilen sonuçları anlamlandırmakta hayli güçlük çektim ve sinir oldum. :)
Araştırmalar nihayetinde şöyle bir bilgi buldum. Ama buna rağmen umduğum sonuç çıkmıyordu.

? (question mark): Makes the preceding item optional. Greedy, so the optional item is included in the match if possible.
abc? matches ab or abc

Aha da bir şeyi şimdi farkettim!
Açıklamadaki "preceding" ifadesini "proceeding" diye okuyormuşum ben. :P
Haliyle ben sonraki karakterin es geçilmesini bekliyor ve bu yüzden sinir oluyormuştum. Oysa seçmeli olan kısım önceki imiş.
Beni onca gıcık eden şey bu muydu yani!? :)


İşin aslı, elimde bulunan ham bir veri içerisinden istediğim değerleri ayıklamak ve onları işlemlerde kullanabilmek derdindeyim.

Ham veri aşağıdaki gibidir. Kalın olarak vurgulanan değerleri elde etmek ve onları toplamak istemekteyim.

<graph caption='Rented Referral Click Statistics for R518532' bgSWF='graphbg.jpg' yAxisMinValue='0' yAxisMaxValue='10' decimalPrecision='0' formatNumberScale='0' showValues='0' showLabels='0' labelDisplay='NONE' showAlternateHGridColor='1' AlternateHGridColor='ff5904' divLineColor='ff5904' divLineAlpha='20' alternateHGridAlpha='5' ><categories showLabel='0'><category name='03-04-11' showName='0'/><category name='03-05-11' showName='0'/><category name='03-06-11' showName='0'/><category name='03-07-11' showName='0'/><category name='03-08-11' showName='0'/><category name='03-09-11' showName='0'/><category name='03-10-11' showName='0'/><category name='03-11-11' showName='0'/><category name='03-12-11' showName='0'/><category name='03-13-11' showName='0'/><category name='03-14-11' showName='0'/><category name='03-15-11' showName='0'/><category name='03-16-11' showName='0'/><category name='Yesterday' showName='0'/><category name='Today' showName='0'/></categories><dataset seriesName='Referral Clicks' color='1D8BD1' anchorBorderColor='1D8BD1' anchorBgColor='1D8BD1'><set label='03-04-11' value='5'/><set label='03-05-11' value='2'/><set label='03-06-11' value='0'/><set label='03-07-11' value='4'/><set label='03-08-11' value='0'/><set label='03-09-11' value='3'/><set label='03-10-11' value='1'/><set label='03-11-11' value='3'/><set label='03-12-11' value='5'/><set label='03-13-11' value='0'/><set label='03-14-11' value='3'/><set label='03-15-11' value='4'/><set label='03-16-11' value='3'/><set label='Yesterday' value='3'/><set label='Today' value='0'/></dataset><dataset seriesName='Referral Clicks Credited' color='FFFF00' anchorBorderColor='FFFF00' anchorBgColor='FFFF00'><set label='03-04-11' value='5'/><set label='03-05-11' value='2'/><set label='03-06-11' value='0'/><set label='03-07-11' value='4'/><set label='03-08-11' value='0'/><set label='03-09-11' value='3'/><set label='03-10-11' value='1'/><set label='03-11-11' value='3'/><set label='03-12-11' value='5'/><set label='03-13-11' value='0'/><set label='03-14-11' value='3'/><set label='03-15-11' value='4'/><set label='03-16-11' value='3'/><set label='Yesterday' value='3'/><set label='Today' value='0'/></dataset></graph>

İşte gerekli verileri JS ve RegExp ile ayıklayabilmek için saatlerdir verdiğim mücadele, mutlu sona ulaşmış bulunuyor. 
 

var re = /<dataset seriesName='Referral Clicks Credited'.*<set label=.*? value='.*?'\/>.*?<\/dataset>/g;
var str = chart_518532.variables.dataXML; //Ham veri kaynağı
var m;
str=str.match(re);//Hedeflenen alt bölüm içeriği alınsın
alert(str);

re=/<set label=.*? value='(.*?)'\/>/g;
var myArr = new Array();

while ( m = re.exec(str) ) {
    myArr.push(m[1]); //İlk grup diziye eklensin.
}
// alert(myArr); // Sonuç: ", 5, 2, 0, 4, 0, 3, 1, 3, 5, 0, 3, 4, 3, 3, 0"

var TotalClick=0;
for(var i=0; i<myArr.length; i++){
    TotalClick += parseInt(myArr[i]);
}
alert(TotalClick); //Sonuç: 36. Elemanların toplamı

Aslında söz konusu örnek veri XML biçiminde olduğu için, çok daha pratik yollarla ve kısa sürede belirtilen değerlerin elde edilmesi de mümkün idi. Ancak JS ile RegExp konusunda gelişmiş bazı uygulamalarla ilgilenmek istedim, sanırım. :P


Daha önce pek dikkatimi çekmeyen \1 benzeri bir ifadenin gücünü hissettim bugün. :)

\n (Backreferences): Backreferences are references to the same thing as a previously captured match. n is a positive nonzero integer telling the browser which captured match to reference to.

/(\S)\1(\1)+/g
matches all occurrences of three equal non-whitespace characters following each other.

/<(\S+).*>(.*)<\/\1>/
matches any tag.
matches '<div id="me">text</div>' in "text<div id=\"me\">text</div>text".


Dikkat çeken örnekler:

var mystring="We read 2 chapters in 3 days"
var needle=/(\d+) chapters/

mystring.match(needle) //matches "2 chapters"
alert(RegExp.$1) //alerts captured subpattern, or "2"

Buradaki, RegExp.$1 ifadesi, işlenen son RegEx komutundan türetiliyor sanki. 
Değişik kullanımlar:

"m1gin".match(/m(.*?)gin/g);
RegExp.$1; // Sonuç 1

var re = /m(.*?)gin/g;
re.exec(/mbirgin/); // veya re.exec("mbirgin")
RegExp.$1 // sonuç: bir

Gruplama Örneği:

var str="";
var myregexp = /\d (\w)/g;
var subject="1 a,2 b,3 c,4 d";
var match = myregexp.exec(subject);
while (match != null) {
    str+="\n matched text: " + match[0];
    str+=" - match start: " +match.index;
    str+=" - capturing group 1: " + match[1];
    match = myregexp.exec(subject);
}
alert(str);

Sonuç: 
matched text: 1 a - match start: 0 - capturing group 1: a
matched text: 2 b - match start: 4 - capturing group 1: b
matched text: 3 c - match start: 8 - capturing group 1: c
matched text: 4 d - match start: 12 - capturing group 1: d

Yeri gelmişken, Javascript ile örnek RegExp kullanımlarını ekleyerek bitireyim.

RegExp.exec(string): Applies the RegExp to the given string, and returns the match information.

var match = /s(amp)le/i.exec("Sample text")
match then contains ["Sample","amp"]

* * *

RegExp.test(string): Tests if the given string matches the Regexp, and returns true if matching, false if not.

var match = /sample/.test("Sample text")
match then contains false

* * *

String.match(pattern): Matches given string with the RegExp. With g flag returns an array containing the matches, without g flag returns just the first match or if no match is found returns null.

var str = "Watch out for the rock!".match(/r?or?/g)
str then contains ["o","or","ro"]

* * *

String.search(pattern): Matches RegExp with string and returns the index of the beginning of the match if found, -1 if not.

var ndx = "Watch out for the rock!".search(/for/)
ndx then contains 10

* * *

String.replace(pattern,string): Replaces matches with the given string, and returns the edited string.

var str = "Liorean said: My name is Liorean!".replace(/Liorean/g,'Big Fat Dork')
str then contains "Big Fat Dork said: My name is Big Fat Dork!"

* * *

String.split(pattern): Cuts a string into an array, making cuts at matches.

var str = "I am confused".split(/\s/g)
str then contains ["I","am","confused"]

 Yararlanılan Kaynaklar: 

  • http://www.evolt.org/node/36435
  • http://www.javascriptkit.com/jsref/regexp.shtml
  • http://stackoverflow.com/questions/5166862/javascript-regular-expression-iterator-to-extract-groups

 

İngilizce kelime ezberleme oyunu: vav.mbirgin.com
Regex ile Kelime Dışlama
2011/08/02 18:06
Bildir! Alıntı ile cevap yaz Oyla! (0 oy)

Bugünlerde, RegEx ile ardışık harf grubunu (veya kelime) dışlama gereksinimim doğdu. 
Bir linkin adresini elde etmek istediğimi ve onu bir başka ara sayfaya yönlendirmek istediğimi varsayalım.

<a href="http://www.mbirgin.com">mbirgin</a>

Yukarıdaki örnekte adresi elde etmek için aşağıdaki deseni uygulayabiliriz:

href="(.*?)"

Ancak aynı zamanda href="javascript:Test()" veya href="#" gibi değerleri barındıran linklere dokunmak istemiyordum.

Bu durumda RegEx ile bazı dışlamalar yapmayı denedim

<a href="([^jav\#].*?)">

Bu, karakter bazında dışlama yapıyordu ve ihtiyacımı karşılamıyordu. j, a, v, # karakterleri ile başlayan tüm değerler dışlanıyordu.
Örneğin <a href="art.htm"> ifadesiyle eşleşmemekteydi.

Oysa benim ihtiyacım olan şey, ardışık karakterleri (javascript ifadesini) dışlamaktır.

Hayli bir uğraş ve arayış sonrasında şu bilgiye ulaştım:

If your condition is that a line should not contain something, use negative lookahead.
^((?!regexp).)*$ matches a complete line that does not match regexp. 

Burada, daha önceden bilmediğim sihirli ifade şu idi: (?!regexp) 

Sonuç olarak aşağıdaki kullanım ihtiyacımı karşılamaktadır:

href="((?!javascript|\#).*?)"

Bu sayede javascript veya # ifadeleriyle başlayan değerler hariç tutuluyordu.

Yararlanılan Kaynak:
www.regular-expressions.info/completelines.html

İngilizce kelime ezberleme oyunu: vav.mbirgin.com
Yanıt: Regex Ve .net
2015/06/19 11:47
Bildir! Alıntı ile cevap yaz Oyla! (0 oy)

Bul değiştir yaparken aranan karakterin sembolü nedir? Yani aranan karakter ile değiştir olması için değiştir kısmına ne yazmamız gerekiyor?

 

Ortam Saptama
2015/06/19 18:17
Bildir! Alıntı ile cevap yaz Oyla! (0 oy)

Selam y_sahan,

Hangi uygulamayı kullanıyorsunuz acaba? 
Bir de tam olarak ne demek istediğinizi anlamadım. Örnek verebilirseniz daha iyi anlayabilirim belki.

 

İngilizce kelime ezberleme oyunu: vav.mbirgin.com
Abonelik Bilgisi Abonelik
Kullanıcı Adı:
Parola:
Bilgi Hatırlatma Yeni Üyelik
İletişim | Kullanım Şartları | Reklam Bilgileri | Tüm Üyeler | Ne Nasıl Yapılır? | Arama | RSS | Twitter | Facebook | Youtube

Son Üyeler: Gakk, busbus, siyamiaytar, 1234123123123, Siyami,
Son Oturumlar: