วันนี้มี 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 แค่ไม่กี่วินาทีผมก็ได้มันมาแล้วครับ
<[a-zA-Z]+(\s+[a-zA-Z]+\s*=\s*("([^"]*)"|'([^']*)'))*\s*/>
ดีกว่าตอนที่ผมเขียนเองซะอีก เพราะผมก็ไม่แน่ใจเหมือนกันว่าที่ผมเขียนถูกต้อง 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 = "<[a-zA-Z]+(\\s+[a-zA-Z]+\\s*=\\s*("([^"]*) "|\'([^\']*)\'))*\\s*/>";
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/
มาสเตอร์แชมป์