亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Regex > 正文

正則表達式練習器

2020-03-16 21:24:25
字體:
來源:轉載
供稿:網友
正則表達式練習器,代碼如下:

  1. <HTML> 
  2. <HEAD> 
  3. <TITLE>正則表達式練習器</TITLE> 
  4. <meta name = 安徽 池州 統計局 徐祖寧 e-mail:czjsz@stats.gov.cn> 
  5. <script language="JavaScript"> 
  6. function OnMove() { 
  7. window.status = "("+window.event.clientX+","+window.event.clientY+")" + " :: "+document.location 
  8. </script> 
  9. <SCRIPT LANGUAGE="JavaScript1.2"> 
  10. var re = new RegExp() //建立正則表達式對象 
  11. var nextpoint = 0 //匹配時的偏移量 
  12. //設置正則表達式 
  13. function setPattern(form) { 
  14. var mode 
  15. if(form.chkmode.checked) mode = "gi" //i:不分大小寫 g:全局,好象沒什么作用 
  16. else mode = "g" 
  17. re.compile(form.regexp.value,mode) 
  18. nextpoint = 0 
  19. form.reglist.value = "" 
  20. //檢查是否有匹配 
  21. function findIt(form) { 
  22. setPattern(form) 
  23. var input = form.main.value 
  24. if (input.search(re) != -1) { 
  25. form.output[0].checked = true  
  26. } else { 
  27. form.output[1].checked = true  
  28. //檢查匹配位置 
  29. function locateIt(form) { 
  30. setPattern(form) 
  31. var input = form.main.value 
  32. form.offset.value = input.search(re) 
  33. //檢查所有的匹配情況 
  34. function execIt(form) { 
  35. if(nextpoint == 0 || ! form.scankmode.checked) { 
  36. findIt(form) 
  37. form.reglist.value = "" 
  38. var key = true 
  39. if(form.scankmode.checked) key = false 
  40. do { 
  41. var input = form.main.value 
  42. var matchArray = re.exec(input.substr(nextpoint)) 
  43. if(matchArray) { 
  44. for(var i=1;i<matchArray.length;i++) 
  45. matchArray[i] = "$"+i+":"+matchArray[i] 
  46. form.reglist.value = (nextpoint+matchArray.index)+" => " + matchArray[0] +"/n"+form.reglist.value 
  47. form.matchlist.value = "$0:"+matchArray.join("/n") 
  48. nextpointnextpoint = nextpoint + matchArray.index + matchArray[0].length 
  49. }else { 
  50. if(!key) 
  51. form.reglist.value = "沒有找到/n" + form.reglist.value  
  52. form.matchlist.value = " " 
  53. nextpoint = 0 
  54. key = false 
  55. }while (key) 
  56. //設置當前使用的正則表達式 
  57. function setregexp(n) { 
  58. var s = document.all.regexplist.value.split("/r/n") 
  59. document.all.regexp.value = s[n*2-1] //.replace("/r","") 
  60. nextpoint = 0 
  61. //定義選擇監視 
  62. var isNav = (navigator.appName == "Netscape") 
  63. function showSelection() { 
  64. if (isNav) { 
  65. var theText = document.getSelection() 
  66. } else { 
  67. var theText = document.selection.createRange().text 
  68. if(theText.length>0 && document.all.selechkmode.checked) 
  69. document.all.regexp.value = theText 
  70. if (isNav) { 
  71. document.captureEvents(Event.MOUSEUP) 
  72. document.onmouseup = showSelection 
  73. </SCRIPT> 
  74. </HEAD> 
  75. <BODY style="font-size=9pt;" OnMouseMove=OnMove()> 
  76. <FORM><table width=100cellspacing=0 cellpadding=0><tr><td><font color=red>正規表達式練習器</font></td><td align=right><a href=mailto:czjsz_ah@stats.gov.cn>czjsz_ah@stats.gov.cn</a></td></tr></table> 
  77. <table width=100broder=1 frame=above rules=none style="font-size:9pt;"> 
  78. <tr><td width=50valign=top> 
  79. 輸入一些被尋找的正文:<BR> 
  80. <TEXTAREA NAME="main" COLS=58 ROWS=5 WRAP="virtual" style="font-size:9pt;"> 
  81. 09-11-2001 09/11/2001 czjsz_ah@stats.gov.cn 
  82. asdff 12345 196.168.1.3 www.sohu.com ftp://www.chinaasp.com 2001.9.11 http://www.active.com.cn/club/bbs/bbsView.asp http://www.163.com/inden.htm 
  83. </TEXTAREA><BR> 
  84. 進行匹配的正規表達式:  忽略大小寫<INPUT TYPE="checkbox" NAME="chkmode" checked style="font-size:8pt;height:18px"><BR> 
  85. <TEXTAREA NAME="regexp" COLS=51 ROWS=5 style="font-size:9pt;"></TEXTAREA> 
  86. <INPUT TYPE="button" VALUE="清除" onClick="this.form.regexp.value=''" style="font-size:8pt;height:18px"><BR> 
  87. <INPUT TYPE="button" VALUE="能找到嗎?[regexObject.test(string)]" style="font-size:8pt;width:70%;height:18px" onClick="findIt(this.form)"> 
  88. <INPUT TYPE="radio" NAME="output" style="font-size:8pt;height:18px">Yes 
  89. <INPUT TYPE="radio" NAME="output" style="font-size:8pt;height:18px">No <BR> 
  90. <INPUT TYPE="button" VALUE="在哪里?[string.search(regexObject)]" style="font-size:8pt;width:70%;height:18px" onClick="locateIt(this.form)"> 
  91. <INPUT TYPE="text" NAME="offset" SIZE=4 style="font-size:8pt;height:18px"> 
  92. </td> 
  93. <td valign=top> 
  94. 測試用正則表達式列表:  
  95. 使用第<input type=text name=num size=2 value=1 style="font-size:8pt;height:18px"><input type=button value=Go onClick=setregexp(this.form.num.value) style="font-size:8pt;height:18px"> 
  96.     允許復制<INPUT TYPE="checkbox" NAME="selechkmode" style="font-size:8pt;height:18px"> 
  97. <textarea NAME="regexplist" cols=58 rows=14 wrap=off style="font-size:9pt;"> 
  98. 1.檢查日期: 
  99. (1[0-2]|0?[1-9])[-./](0?[1-9]|[12][0-9]|3[01])[-./](/d/d/d/d)) 
  100. 2.檢查數字: 
  101. ([-+]?[0-9]+/.?[0-9]+) 
  102. 3.檢查URL: 
  103. ((http|ftp)://)?(((([/d]+/.)+){3}[/d]+(/[/w./]+)?)|([a-z]/w*((/./w+)+){2,})([/][/w.~]*)*) 
  104. 4.檢查E-mail 
  105. /w+@((/w+[.]?)+) 
  106. </textarea> 
  107. </td></tr> 
  108. <tr><td valign=bottom> 
  109. <INPUT TYPE="button" VALUE="有哪些?[regexObject.exec(string)]" style="font-size:8pt;width:70%;height:18px" onClick="execIt(this.form)"> 
  110.   單步<INPUT TYPE="checkbox" NAME="scankmode" style="font-size:8pt;height:18px"><BR> 
  111. <TEXTAREA NAME="reglist" COLS=58 ROWS=8 style="font-size:9pt;"></TEXTAREA> 
  112. </td> 
  113. <td valign=bottom> 
  114. 匹配到的成分:(單步時可見) 
  115. <TEXTAREA NAME="matchlist" COLS=58 ROWS=8 style="font-size:9pt;"></TEXTAREA> 
  116. </td></tr></table></FORM> 
  117. <script> 
  118. setregexp(1) 
  119. </script> 
  120. </BODY> 
  121. </HTML> 
  122.  
  123. 對正則表達式練習器的改進,原貼ID901680 
  124. 覆蓋原execIt函數 
  125. 修改后的execIt函數允許對多個正則表達式進行匹配(每個正則表達式一行),并對每一個匹配成分顯示出是第幾個正則表達式匹配的。 
  126. 這可視為語法分析的雛形,只要對匹配產生相應的動作。 
  127. function execIt(form) { 
  128. var mode 
  129. if(form.chkmode.checked) mode = "gi" 
  130. else mode = "g" 
  131. var regexpArray = form.regexp.value.split("/r/n") //獲取正則表達式到數組 
  132. if(nextpoint == 0) form.reglist.value = "" 
  133. var key = true 
  134. if(form.scankmode.checked) key = false 
  135. else nextpoint = 0 
  136. do { 
  137. var offs = 9999999999 
  138. var pos = -1 
  139. var input = form.main.value.substr(nextpoint) 
  140. //對每個正則表達式進行匹配 
  141. for(var i=0;i<regexpArray.length;i++) { 
  142. re.compile(regexpArray[i],mode) 
  143. var matchArray = re.exec(input) 
  144. if(matchArray) { 
  145. if(offs > matchArray.index) { 
  146. offs = matchArray.index 
  147. pos = i //保存距離起始位子最近的匹配 
  148. if(pos>=0) { 
  149. re.compile(regexpArray[pos],mode) 
  150. var matchArray = re.exec(input) 
  151. for(var i=1;i<matchArray.length;i++) 
  152. matchArray[i] = "$"+i+":"+matchArray[i] 
  153. form.reglist.value = "["+(pos+1)+"]"+(nextpoint+matchArray.index)+" => " + matchArray[0] +"/n"+form.reglist.value 
  154. form.matchlist.value = "$0:"+matchArray.join("/n") 
  155. nextpointnextpoint = nextpoint + matchArray.index + matchArray[0].length 
  156. }else { 
  157. if(!key) 
  158. form.reglist.value = "沒有找到/n" + form.reglist.value  
  159. form.matchlist.value = " " 
  160. nextpoint = 0 
  161. key = false 
  162. }while(key) 

上一篇:ubbcode簡單實用

下一篇:17種正則表達式

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97精品久久久中文字幕免费| 青青草精品毛片| 午夜精品久久久久久久99热浪潮| 亚洲人成欧美中文字幕| 亚洲国产精品久久久久久| 午夜精品www| 亚洲精品久久久久中文字幕欢迎你| 一本一道久久a久久精品逆3p| 欧美极品美女电影一区| 久久精品国产一区| 高清欧美性猛交xxxx黑人猛交| 精品视频久久久久久久| 欧美日韩免费区域视频在线观看| 精品一区二区亚洲| 日本免费在线精品| 亚洲欧美综合精品久久成人| 欧洲成人免费视频| 亚洲最大的免费| 欧美有码在线观看视频| 欧美午夜久久久| 国产精品视频一区二区高潮| 久久久精品中文字幕| 91亚洲精华国产精华| 精品久久久久久久久久国产| 国产在线一区二区三区| 亚洲美女动态图120秒| 97婷婷涩涩精品一区| 九九精品在线观看| 成人福利网站在线观看| 久久久av一区| 精品色蜜蜜精品视频在线观看| 日韩精品欧美国产精品忘忧草| 九九热这里只有在线精品视| 国产精品电影网站| 久久在线免费视频| 久久人人爽人人爽人人片亚洲| 亚洲精品欧美一区二区三区| 欧美精品免费在线观看| 亚洲sss综合天堂久久| 久久国产精品99国产精| 国产精品老女人精品视频| 伦伦影院午夜日韩欧美限制| 亚洲人线精品午夜| 久久久精品免费| 国产91露脸中文字幕在线| 日韩精品免费一线在线观看| 亚洲国产精品久久久久秋霞蜜臀| 青青草原一区二区| 亚洲国产欧美日韩精品| 国产精品久久久久久久久久久久久| 成人在线一区二区| 色青青草原桃花久久综合| 欧美www在线| 国产日产欧美a一级在线| 尤物九九久久国产精品的分类| 一本色道久久88综合亚洲精品ⅰ| 热re91久久精品国99热蜜臀| 77777少妇光屁股久久一区| 欧美日韩一区二区三区| 欧美黄网免费在线观看| 国产一区二中文字幕在线看| 国产精品久久久久久av福利软件| 久久韩国免费视频| 国产成人亚洲综合青青| www.色综合| 日韩精品www| 国产综合香蕉五月婷在线| 91精品美女在线| 久久久国产精品x99av| 在线视频日韩精品| 日韩大陆毛片av| 8090理伦午夜在线电影| 欧美精品videosex极品1| 亚洲一区二区黄| 欧美在线播放视频| 欧美精品18videos性欧美| 国产精品美女www爽爽爽视频| 国产欧美日韩高清| 在线精品视频视频中文字幕| 国产精品啪视频| 青草青草久热精品视频在线网站| 97在线看免费观看视频在线观看| 欧美成人免费全部| 在线播放日韩欧美| 91福利视频网| 国产精品毛片a∨一区二区三区|国| 精品久久久国产| 国产视频丨精品|在线观看| 欧美丝袜一区二区三区| 欧美极品少妇xxxxⅹ喷水| 亚洲人成毛片在线播放| 九九精品在线播放| 亚洲欧美日韩在线一区| 亚洲综合在线中文字幕| 国产va免费精品高清在线| 姬川优奈aav一区二区| 日本精品中文字幕| 日韩欧美在线免费| 日韩在线欧美在线| 欧美色videos| 国产精品亚发布| 精品国产欧美一区二区三区成人| 欧美性猛交xxxx乱大交蜜桃| 亚洲精选中文字幕| 亚洲高清在线观看| 欧美激情极品视频| 久久99亚洲精品| 亚洲欧美在线一区| 日韩精品在线免费观看| 日本亚洲欧美三级| 欧美日韩一区二区在线| 最近2019中文字幕mv免费看| 国产精品r级在线| 亚洲欧美日韩国产成人| 国产一区私人高清影院| 欧美日韩国产精品一区二区不卡中文| 青草青草久热精品视频在线观看| 91在线国产电影| 国产噜噜噜噜久久久久久久久| 国产精品丝袜一区二区三区| 亚洲欧美中文字幕| 欧美综合国产精品久久丁香| 国产欧美亚洲视频| 91精品成人久久| 久久久噜噜噜久久| 中文字幕亚洲情99在线| 亚洲成人xxx| 国产一区二区日韩精品欧美精品| 77777少妇光屁股久久一区| 欧美日韩激情视频| 91精品国产自产在线老师啪| 精品一区精品二区| 色综合天天狠天天透天天伊人| 国产精品jizz在线观看麻豆| 日韩精品视频在线免费观看| 国产日产久久高清欧美一区| 欧美特级www| 98午夜经典影视| 国产一区视频在线| 日韩av电影手机在线观看| 亚洲欧美国产一本综合首页| 中文字幕免费精品一区高清| 欧美色图在线视频| 国产精品日韩av| 国产精品视频不卡| 亚洲男人的天堂在线| 这里只有精品丝袜| 91精品国产高清久久久久久| 亚洲精品电影网站| 精品久久中文字幕| 亚洲伊人成综合成人网| 欧洲成人免费aa| 精品人伦一区二区三区蜜桃网站| 久久久久久久久久久久av| 亚洲美女av在线| 国产日韩精品在线播放| 色老头一区二区三区| 国产在线精品一区免费香蕉| 欧美在线国产精品| 久久久久久12| 国产亚洲在线播放| 搡老女人一区二区三区视频tv| 欧美福利在线观看| 在线播放国产一区中文字幕剧情欧美|