2006/Feb/09

วันนี้มี tools อีกตัวหนึ่งครับ จำได้ว่าเมื่อไม่นานมานี้ผมได้เขียน program ใช้งานและก็มีงานส่วนหนึ่ง เป็นการเขียน code เพื่อทำการ scan file html และทำการ list file imageที่ใช้ทั้งหมดในfile htmlนี้ ตอนนั้นก็ทำเอาเหนื่อยเลยนะครับเพราะเราต้องอ่านfile ทั้งหมดแล้วตัดเอาเฉพาะ Tag <img src".."> ตอนนั้นจำได้ว่าใช้ความสามารถของregular expression ทั้นนั้นเลยครับ พอมาเจอtoolsตัวนี้แล้ว ผมควจจะมาเจอมันก่อนหน้านี้ เพราะไม่ต้องเหนื่อย test case ที่เป็นไปได้ทั้งหมด

Regulator เป็นเครื่องมือที่ผมยอมรับจริงครับเพราะ ตอนนั้นจำได้ว่า คิด regular expression ของ <img src="" ...> ทุก case เล่นใช้เวลาไปค่อนวัน แต่พอมาใช้ regulator แค่ไม่กี่วินาทีผมก็ได้มันมาแล้วครับ

&lt;[a-zA-Z]+(\s+[a-zA-Z]+\s*=\s*(&quot;([^&quot;]*)&quot;|'([^']*)'))*\s*/&gt;

ดีกว่าตอนที่ผมเขียนเองซะอีก เพราะผมก็ไม่แน่ใจเหมือนกันว่าที่ผมเขียนถูกต้อง 100%
regulator ทำได้ยังไง โดยวิธีง่ายๆ ครับ พิมพ์คำที่เราต้องการหา regex เจ้าตัวโปรแกรมก็จะทำการไปค้นคำ ในเวบ
http://www.regxlib.com ผลที่ได้ก็จะเป็น regex ที่สอดคล้องกับคำค้นของเราครับ ลองไปเล่นกันดูนะครับ ยังมีส่วนอื่นที่น่าสนใจอีกเยอะเลย โดยเฉพาะสามารถ Generate Code เอาออกมาใช้ได้แล้วครับ(ใจคอจะไม่ให้ทำอะไรเลยเหรอครับ)



28namespace Regulator

29{

30

31

32Public Class RegularExpression

33 {

34

35 private void Test()

36 {

37 string regex = "&lt;[a-zA-Z]+(\\s+[a-zA-Z]+\\s*=\\s*(&quot;([^&quot;]*) &quot;|\'([^\']*)\'))*\\s*/&gt;";

38 System.Text.RegularExpressions.RegexOptions options = ((System.Text.RegularExpressions.RegexOptions.IgnorePatternWhitespace | System.Text.RegularExpressions.RegexOptions.Multiline)

39 | System.Text.RegularExpressions.RegexOptions.IgnoreCase);

40 System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(regex, options);

41 }

42 }

43}


Downloadได้ที่ http://regex.osherove.com/

ชื่อ: 
เว็บไซต์: 
คอมเมนต์:




smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry
ผมชอบอ่านบลอคนี้มากเลยครับ เป็นความรู้มากๆ ทั้งเรื่อง AJAX ทั้งเรื่องทั่วไปด้วย อย่าเลิกเขียนนะครับ
#1  by   มาสเตอร์แชมป์ At 2006-02-10 00:42, 
ยินดีครับ เรื่องแบ่งประสบการณ์ นี้ถนัดผมว่ายุคนี้ คนที่รู้เรื่องเทคโนโลยีมากๆจะทำอะไรมักจะก้าวไปก่อนคนอื่นเสมอ..
#2  by  Code SNippet At 2006-02-10 10:46, 

<< Home