⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c#正则表达式练习器.htm

📁 个人搜集的一些笔试面试题
💻 HTM
字号:
 <HTML>
 <HEAD>
 <TITLE>正则表达式练习器</TITLE>
 <meta name = 安徽 池州 统计局 徐祖宁 e-mail:czjsz@stats.gov.cn>
 <script language="JavaScript">
 function OnMove() {
 window.status = "("+window.event.clientX+","+window.event.clientY+")" + " :: "+document.location
 }
 </script>
<SCRIPT LANGUAGE="JavaScript1.2">
 var re = new RegExp()  //建立正则表达式对象
 var nextpoint = 0      //匹配时的偏移量
 //设置正则表达式
 function setPattern(form) {
   var mode
   if(form.chkmode.checked) mode = "gi"  //i:不分大小写 g:全局,好象没什么作用
   else mode = "g"
   re.compile(form.regexp.value,mode)
   nextpoint = 0
   form.reglist.value = ""
 }
 //检查是否有匹配
 function findIt(form) {
   setPattern(form)
   var input = form.main.value
   if (input.search(re) != -1) {
     form.output[0].checked = true    
   } else {
     form.output[1].checked = true    
   }
 }
 //检查匹配位置
 function locateIt(form) {
   setPattern(form)
   var input = form.main.value
   form.offset.value = input.search(re)
 }
 //检查所有的匹配情况
 function execIt(form) {
  var mode
  if(form.chkmode.checked) mode = "gi"
  else mode = "g"
  var regexpArray = form.regexp.value.split("rn")  //获取正则表达式到数组 

  if(nextpoint == 0) form.reglist.value = ""
  var key = true
  if(form.scankmode.checked) key = false
  else nextpoint = 0
  do {
    var offs = 9999999999
    var pos = -1
    var input = form.main.value.substr(nextpoint)
    //对每个正则表达式进行匹配
    for(var i=0;i<regexpArray.length;i++) {
      re.compile(regexpArray,mode)
      var matchArray = re.exec(input)
      if(matchArray) {
        if(offs > matchArray.index) {
          offs = matchArray.index
          pos = i  //保存距离起始位子最近的匹配
        }
      }
    }
    if(pos>=0) {
      re.compile(regexpArray[pos],mode)
      var matchArray = re.exec(input)
      for(var i=1;i<matchArray.length;i++)
        matchArray = "$"+i+":"+matchArray
      form.reglist.value = "["+(pos+1)+"]"+(nextpoint+matchArray.index)+" => " + matchArray[0] +"n"+form.reglist.value
      form.matchlist.value = "$0:"+matchArray.join("n")
      nextpoint = nextpoint + matchArray.index + matchArray[0].length
    }else {
      if(!key)
        form.reglist.value = "没有找到n" + form.reglist.value 
      form.matchlist.value = " "
      nextpoint = 0
      key = false
    }
  }while(key)
}
 //设置当前使用的正则表达式
 function setregexp(n) {
   var s = document.all.regexplist.value.split("rn")
   document.all.regexp.value = s[n*2-1]  //.replace("r","")
   nextpoint = 0
 }
//定义选择监视
 var isNav = (navigator.appName == "Netscape")
 function showSelection() {
   if (isNav) {
     var theText = document.getSelection()
   } else {
     var theText = document.selection.createRange().text
   }
   if(theText.length>0 && document.all.selechkmode.checked)
     document.all.regexp.value = theText
 }
 if (isNav) {
     document.captureEvents(Event.MOUSEUP)
 }
 document.onmouseup = showSelection
 </SCRIPT>
</HEAD>
 <BODY style="font-size=9pt;" OnMouseMove=OnMove()>
 <FORM><table width=100% cellspacing=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>
 <table width=100% broder=1 frame=above rules=none style="font-size:9pt;">
 <tr><td width=50%  valign=top>
 输入一些被寻找的正文:<BR>
 <TEXTAREA NAME="main" COLS=58 ROWS=5 WRAP="virtual" style="font-size:9pt;">
 09-11-2001 09/11/2001 czjsz_ah@stats.gov.cn
 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
 </TEXTAREA><BR>
 进行匹配的正规表达式:  忽略大小写<INPUT TYPE="checkbox" NAME="chkmode" checked style="font-size:8pt;height:18px"><BR>
 <TEXTAREA NAME="regexp" COLS=51 ROWS=5 style="font-size:9pt;"></TEXTAREA>
 <INPUT TYPE="button" VALUE="清除" onClick="this.form.regexp.value=''" style="font-size:8pt;height:18px"><BR>
 <INPUT TYPE="button" VALUE="能找到吗?[regexObject.test(string)]" style="font-size:8pt;width:70%;height:18px" onClick="findIt(this.form)">
 <INPUT TYPE="radio" NAME="output" style="font-size:8pt;height:18px">Yes
 <INPUT TYPE="radio" NAME="output" style="font-size:8pt;height:18px">No <BR>
 <INPUT TYPE="button" VALUE="在哪里?[string.search(regexObject)]" style="font-size:8pt;width:70%;height:18px" onClick="locateIt(this.form)">
 <INPUT TYPE="text" NAME="offset" SIZE=4 style="font-size:8pt;height:18px">
 </td>
 <td valign=top>
 测试用正则表达式列表: 
 使用第<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">
     允许复制<INPUT TYPE="checkbox" NAME="selechkmode" style="font-size:8pt;height:18px">
 <textarea NAME="regexplist" cols=58 rows=14 wrap=off style="font-size:9pt;">
 1.检查日期:
 (1[0-2]|0?[1-9])[-./](0?[1-9]|[12][0-9]|3[01])[-./](dddd))
 2.检查数字:
 ([-+]?[0-9]+.?[0-9]+)
 3.检查URL:
 ((http|ftp)://)?(((([d]+.)+){3}[d]+(/[w./]+)?)|([a-z]w*((.w+)+){2,})([/][w.~]*)*)
 4.检查E-mail
 w+@((w+[.]?)+)
 </textarea>
 </td></tr>
 <tr><td valign=bottom>
 <INPUT TYPE="button" VALUE="有哪些?[regexObject.exec(string)]" style="font-size:8pt;width:70%;height:18px" onClick="execIt(this.form)">
   单步<INPUT TYPE="checkbox" NAME="scankmode" style="font-size:8pt;height:18px"><BR>
 <TEXTAREA NAME="reglist" COLS=58 ROWS=8 style="font-size:9pt;"></TEXTAREA>
 </td>
 <td valign=bottom>
 匹配到的成分:(单步时可见)
 <TEXTAREA NAME="matchlist" COLS=58 ROWS=8 style="font-size:9pt;"></TEXTAREA>
 </td></tr></table></FORM>
 <script>
 setregexp(1)
 </script>
 </BODY>
 </HTML>
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -