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

📄 main.csp

📁 eybuild-x86-arm920t-2.6.7.tar 很好的嵌入式WEB开发环境
💻 CSP
字号:
<html>
<head>
	<title>Regular Expressions</title>
</head>
<style><!--
body      {font-size: 12px;}
#checkbox  {font-size: 10px;}
#radiobox  {font-size: 10px;}
#listbox   {font-size: 10px;}
#ok        {bold; color=black;}
#error     {bold; color=red;}
--></style>
<body>
<h3>preg_match(), preg_match_all(), <br> preg_split(), preg_replace()</h3>
<form method="post" action="">
	<input type="hidden" name="submit_flags" value="yes">
	<% RADIO_BOX("mode", "", G("mode"), "id=\"radiobox\"") %> 字符串匹配 
	<% RADIO_BOX("mode", "1", G("mode"), "id=\"radiobox\"") %> 匹配所有<BR>
	<% RADIO_BOX("mode", "2", G("mode"), "id=\"radiobox\"") %> 字符串分离
	<% RADIO_BOX("mode", "3", G("mode"), "id=\"radiobox\"") %> 字符串替换<BR>
	正则表达式: <input type="text" name="pattern" value="<% =#G("pattern") %>" size="25">
	<% CHECK_BOX("nocase", "1", G("nocase"), "id=\"checkbox\"") %>不区分大小写
	<% CHECK_BOX("mline", "1", G("mline"), "id=\"checkbox\"") %> 多行模式<BR>
	输入比较串: <textarea name="string" value="" cols="50" rows="3" ><% =#G("string") %></textarea><br>
	输入替换串: <textarea name="repstr" value="" cols="50" rows="3" ><% =#G("repstr") %></textarea><p>
	<input type="submit" name="testit" value="submit test test case">
	<hr>
<% if (!strissp(G("submit_flags"))) { 
#define MLIST_SIZE  4096
    char            errbuf[256] = "正确匹配!";
    regmatch_t      mlist[MLIST_SIZE];
    char *          plist[MLIST_SIZE];
    char            pattern[256] = "";
    regmatch_t *    pmlist = mlist;
    char *          string = G("string");
    const char *    repstr[MLIST_SIZE];
    char *          prep = NULL;
    char *          pdst = NULL;
    int             ret;
    int             len, i;
    int             mode = atoi(G("mode"));
    
    /* make pattern */
    sprintf(pattern, "/%s/%s%s", G("pattern"), 
            '1'==G("nocase")[0] ? "i": "", '1'==G("mline")[0] ? "m": "");

    /* perform match */
    if (3 == mode) {
    		char *			ps;
    		char *			pe;
    		
    		ps = prep = strdup(G("repstr"));
    		for (i=0; NULL != ps && i<MLIST_SIZE-1; i++, ps=pe) {
    				if (NULL != (pe=strchr(ps, '\n')))
    						*pe++ = '\0';
    				repstr[i] = strtrim(ps);
				}
				repstr[i] = NULL;
				    		
        ret = preg_replace(pattern, string, repstr, &pdst, 512*128, MLIST_SIZE);
    }
    else if (2 == mode)
        ret = preg_split(pattern, string, plist, MLIST_SIZE);
    else if (1 == mode)
        ret = preg_match_all(pattern, string, &pmlist, MLIST_SIZE);
    else
        ret = preg_match(pattern, string, pmlist, MLIST_SIZE);
        
    if (ret <= 0)
        regerror(REG_GETERR(ret), NULL, errbuf, sizeof(errbuf));
%>
     
    <table border=1>
    <tr >
    	<td width=100>匹配结果: </td>
    	<td width=600 id="<% =(ret<0 ? "error": "ok") %>">
    	    <% =$REG_GETERR(ret) %>: <% =errbuf %></td>
    </tr>
    <tr>
    	<td>模式串: <% =$mode %>&nbsp;</td>
    	<td><% =#pattern %>&nbsp;</td>
    </tr>
    <tr>
    	<td>匹配串: </td>
    	<td><pre><% =#string %></pre>&nbsp;</td>
    </tr>
<% if (3 == mode) { %>
    <% if (ret > 0) { %>
    <tr>
    	<td>替换串: </td>
    	<td><pre><% =#prep %></pre>&nbsp;</td>
    </tr>
    <tr>
    	<td>共替换: <% =$ret %></td>
    	<td><pre><% =#pdst %></pre>&nbsp;</td>
    </tr>

    <% } 
       free(pdst);
       free(prep);
    %>
<% } else if (2 == mode) { %>
    <% for (i=0; NULL != plist[i]; i++) { %>
    <tr>
    	<td><% =$i %>. (-:-)</td>
    	<td><% =#plist[i] %>&nbsp;</td>
    </tr>
    <% } 
       preg_split_free(plist);
    %>
<% } else { %>
    <% for (i=0; i<= ret; i++) { 
        len = pmlist[i].rm_eo - pmlist[i].rm_so;
    %>
    <tr>
    	<td><% =$i %>. (<% =$pmlist[i].rm_so %>: <% =$pmlist[i].rm_eo %>)</td>
    	<td><% if (0){
    		char * p = strndup(string+pmlist[i].rm_so, len);
    		ebHtmlPrint(p);
    		free(p);
    		}
    		ebHtmlnPrint(string+pmlist[i].rm_so, len);
    	/* =%.*s, len, string+pmlist[i].rm_so */ %>&nbsp;</td>
    </tr>
    <% } 
       if (1 == mode) 
           free(pmlist);
    %>
<% } %>
    </table>
<% } %>
</form>
</body>
</HTML>

⌨️ 快捷键说明

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