`

揭开正则表达式的神秘面纱(1)

阅读更多
揭开正则表达式的神秘面纱(1)
http://blog.csdn.net/xiaoping8411/category/427154.aspx
http://blog.csdn.net/xiaoping8411/archive/2008/07/12/2643895.aspx
http://blog.csdn.net/xiaoping8411/archive/2008/07/12/2643956.aspx


正则表达式 -- 测试工具 -- WEB版

<HTML>
<HEAD>
<TITLE>Regular Expression Test Page</TITLE>

<!--- Some styles to make the page look nice --->
<STYLE>
  BODY {font-family:arial;font-size:12px}
  INPUT {font-size:11px}
  TEXTAREA {font-size:11px}
  TH {background:#8888FF;color:white;text-align:left}
  TD {background:#CCCC99;color:black;font-size:12px}
  TD.RowA {background:#CCCC99}
  TD.RowB {background:#EEEEBB}
  .header {font-weight:bold}
</STYLE>

<SCRIPT LANGUAGE="JavaScript">
// Turn off fields used only by replace
function hideReplaceFields() {
  document.getElementById('RegExReplace').disabled=true;
  document.getElementById('replaceheader').disabled=true;
}

// Turn on fields used only by replace
function showReplaceFields() {
  document.getElementById('RegExReplace').disabled=false;
  document.getElementById('replaceheader').disabled=false;
}

// Perform a find
function processRegexFind(text, regex, flags) {
 var reg = new RegExp(regex, flags);
 var lastIdx = -1;
 var iCount = 0;
 var result = "";
 var output = '<DIV STYLE="height:200px;overflow-y:auto;width:550">' +
     '<TABLE BORDER="0" CELLPADDING="2" CELLSPACING="0" WIDTH="550">' +
     '<TR><TH WIDTH="*">Match</TH><TH WIDTH="50">Position</TH><TH WIDTH="50">Length</TH></TR>';

 // Loop as long as have matches
 while (lastIdx != 0)
 {
  // Do it
  var mtch = reg.exec(text);
  
  // Check if got one
  if (reg.lastIndex != 0)
  {
   // Yep, increment counter
   iCount++;

   if (iCount % 2)
    style = "RowA";
   else
    style = "RowB";
   // Write output
   output += '<TR CLASS="' + style + '"><TD>' +
      RegExp.lastMatch + "</TD><TD>" +
      (reg.lastIndex-RegExp.lastMatch.length) + "</TD><TD>" +
      RegExp.lastMatch.length + "</TD></TR>";
  }
  
  lastIdx = reg.lastIndex;
 }
 
 output += "</TABLE>";

 // Build result
 if (iCount != 0)
  result = "Matches Found: " + iCount+ "<BR>" + output;
 else
  result = "No matches";  
  
 return result;
}

// Process a replace
function processRegexReplace(text, regexfind, regexreplace, flags) {
 // Define regex
 var re = new RegExp (regexfind, flags) ;
 // Do it
 var newstr = text.replace(re, regexreplace) ;
 // Generate output
 var result = '<DIV STYLE="height:200px;overflow-y:auto;width:550">' +
     '<TABLE BORDER="0" CELLPADDING="2" CELLSPACING="0" WIDTH="550">' +
     '<TR><TH>New Text</TH></TR><TR><TD>' +
     newstr + '</TD></TR>';

return result;
}

// Process entry point
function processRegex(form) {
 var output="";
 var flags;
 if (form.CaseSensitive.checked)
  flags = "g";
 else
  flags = "gi";

 // What to do?
 if (form.OperationFind.checked) {
  output=processRegexFind(form.SearchText.value, form.RegEx.value, flags);
 }
 else if (form.OperationReplace.checked) {
  output=processRegexReplace(form.SearchText.value, form.RegEx.value, form.RegExReplace.value, flags);
 }

 document.getElementById('output').innerHTML=output;
  
 return false;
}
</SCRIPT>
</HEAD>

<BODY>

<FORM NAME="tester" ACTION="" METHOD="post" onSubmit="processRegex(this);return false">
    
<TABLE BORDER="1" CELLPADDING="4" CELLSPACING="0" WIDTH="550">
  <TR>
    <TH CLASS="Dialog">Regular Expression Tester</TH>
  </TR>
  <TR> 
    <TD CLASS="Dialog"> 

    <!--- Text input for the regular expression itself --->
    <SPAN CLASS="header">Enter a regular expression:</SPAN><BR>
    <INPUT NAME="RegEx" TYPE="Text" SIZE="65" STYLE="font-size:13px">

    <!--- Checkbox to control case-sensitivity --->
    <INPUT TYPE="Checkbox" NAME="CaseSensitive" ID="CaseSensitive" VALUE="Yes">
    <LABEL FOR="CaseSensitive">Case sensitive</LABEL>
    <BR>

    <!--- Radio buttons to display find vs. replace --->
    <INPUT TYPE="Radio" NAME="Operation" ID="OperationFind" VALUE="find" CHECKED onClick="hideReplaceFields()">
    <LABEL FOR="OperationFind">Find</LABEL>
    <INPUT TYPE="Radio" NAME="Operation" ID="OperationReplace" VALUE="replace" onClick="showReplaceFields()">
    <LABEL FOR="OperationReplace">Replace</LABEL>
    <BR>

    <!--- Text input for the replace regular expression --->
    <SPAN CLASS="header" ID="replaceheader">Enter the replace regular expression:</SPAN><BR>
    <INPUT ID="RegExReplace" NAME="RegExReplace" TYPE="Text" SIZE="65" STYLE="font-size:13px">
    <BR><BR>

    <!--- Textarea where user can type the text to search --->  
    <SPAN CLASS="header">And the text you wish to search:</SPAN><BR>
    <TEXTAREA NAME="SearchText" WRAP="off" COLS="70" ROWS="6"></TEXTAREA>
    <BR>

    <!--- Submit button to start the search --->  
    <INPUT NAME="Submit" TYPE="Submit" STYLE="font-weight:bold" VALUE="Match Now"></TD>
  </TR>
</TABLE>
  
</FORM>

<!-- Display any reults here --->
<SPAN id="output"></SPAN> 

<!-- Default to find --->
<SCRIPT LANGUAGE="JavaScript">
hideReplaceFields();
</SCRIPT>

</BODY>
</HTML>


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiaoping8411/archive/2010/01/04/5127276.aspx
分享到:
评论

相关推荐

    正则表达式参考文档揭开正则表达式的神秘面纱

    本文档将深入探讨正则表达式的概念、语法以及常见用法,旨在帮助读者揭开其神秘面纱。 一、正则表达式基础 1. 基本字符:正则表达式由一系列基本字符构成,如字母、数字、标点符号等。例如,字符"a"、"b"和"1"都是...

    揭开正则表达式的神秘面纱.doc

    正则表达式为此提供了几种特殊的修饰符,用以控制匹配的次数。 | 表达式 | 描述 | | --- | --- | | * | 前面的字符可以出现任意次(包括0次)。例如,“a*”将匹配任何以零个或多个"a"开头的字符串。 | | + | 前面...

    揭开正则表达式的神秘面纱(doc)

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和验证字符串。它通过一套特定的语法,即正则表达式规则,来定义字符串的特征。本文将深入解析正则表达式的基本概念和常用规则。 1. **普通字符** 普通...

    正则表达式 正则表达式资料 正则表达式教程

    #### 2.2 regexlab.com的《揭开正则表达式的神秘面纱》 该资源提供了详细的讲解和实例,排版清晰整洁。无论是正准备入门的新手还是希望进一步提升技能的老手,都能从中获益良多。通过学习这一资源,读者可以更好地...

    正则表达式的绝好资料

    包括 1、精通正则表达式的试读 第 四章 2、英文版的精通正则表达式 3、揭开正则表达式的神秘面纱 4、........ &lt;br&gt;自己看吧,我觉得,这是正则表达式最好的资料啦

    正则表达式 电子书 教程 chm

    总之,正则表达式是一门深奥且强大的技术,虽然初学者可能觉得它复杂难懂,但只要通过系统的教程学习,如本教程提供的CHM电子书,便能逐步揭开其神秘面纱,轻松应对各种文本处理挑战。无论你是网站开发人员、数据...

    正则表达式学习大全(有了这个,几乎不用看别的资料了,详情见资源描述)

    1、揭开正则表达式的神秘面纱 2、半小时精通正则表达式 3、表单验证Validator v1.0.chm 4、正则表达式.chm 5、DEELX 正则表达式 6、java正则表达式入门文档 7、Java正则表达式使用详解 8、常用正则表达式集锦 9、...

    正则表达式必知必会

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛...《正则表达式必知必会》这本书无疑是入门的最佳选择,它将带领读者逐步揭开正则表达式的神秘面纱,帮助你快速理解和运用这一技术。

Global site tag (gtag.js) - Google Analytics