• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數據加載中……

            EmEditor 的搜索提取宏

            1、將最下文本保存為 EmCommnMarco.jsee;

             

            2、 宏-〉自定義-〉新建-〉選擇 EmCommnMarco.jsee;

            image

            image 

            image

             

            3、宏-〉設置為當前宏

            image

             

            4、按下F4就運行宏了

            image

             

             

             

             

             

            /**
            * 根據輸入的正則表達式,提取與之匹配的字符串,并新建一個文檔顯示所有匹配的字符串,
            * 顯示時每個匹配項占一行
            *
            * @author Guapo
            * @version v1.0
            */
            function getText()
            {
                var _regex=prompt("本程序用來提取正則表達式匹配的字符串,請輸入正則表達式","");
                if(_regex==""||_regex==null)
                {
                    alert("輸入為空,請重新輸入");
                    return;
                }
                var regex=new RegExp(_regex,"gim");
                document.selection.SelectAll();
                var textInCurrentDocument=document.selection.Text;
                var matchResultArray=textInCurrentDocument.match(regex);
                if(matchResultArray)
                {
                    var len=matchResultArray.length;
                    editor.NewFile();
                    for(var i=0;i<len;i++)
                    {
                        document.writeln(matchResultArray[i]);
                    }
                }
                else
                {
                    alert("沒有找到匹配的字符串");
                }
            }

            /**
            * 拷貝正在編輯的文檔的完整路徑(含文件名和擴展名)到剪貼板
            *
            * @author Guapo
            * @version v1.0
            */
            function copyFullName()
            {
                if(document.Saved)
                {
                    document.CopyFullName();
                }
                else
                {
                    alert("請保存文件后再執行此命令");
                }
            }

            /**
            * 拷貝正在編輯的文檔的路徑(不含文件名和擴展名)到剪貼板
            *
            * @author Guapo
            * @version v1.0
            */
            function copyPath()
            {
                if(document.Saved)
                {
                    document.CopyPath();
                }
                else
                {
                    alert("請保存文件后再執行此命令");
                }
            }

            /**
            * 刪除當前正在編輯文檔的行首的所有空格(包含Tab鍵)
            *
            * @author Guapo
            * @version v1.0
            */
            function deleteLineStartBlank()
            {
                document.selection.Replace("^\\s*","",eeFindNext | eeReplaceAll | eeFindReplaceRegExp);
            }

            /**
            * 刪除當前正在編輯文檔的行尾的所有空格(包含Tab鍵)
            *
            * @author Guapo
            * @version v1.0
            */
            function deleteLineEndBlank()
            {
                document.selection.Replace("\\s*$","",eeFindNext | eeReplaceAll | eeFindReplaceRegExp);
            }

            /**
            * 為當前正在編輯文檔的每一行的行首添加n個空格
            *
            * @author Guapo
            * @version v1.0
            */
            function addBlank2LineStart()
            {
                var string_n=prompt("請問您要給行首添加幾個空格呢?","1");
                if(isN(string_n))
                {
                    var s="";
                    var int_n=parseInt(string_n);
                    for(var i=0;i<int_n;i++)
                    {
                        s+=" ";
                    }
                    s+="\\0";
                    document.selection.Replace("^.",s,eeFindNext | eeReplaceAll | eeFindReplaceRegExp);
                    document.HighlightFind=false;
                    return;
                }
                else
                {
                    alert("您輸入的不正確,請重新輸入");
                }
            }

            /**
            * 為當前正在編輯文檔的每一行的行尾添加n個空格
            *
            * @author Guapo
            * @version v1.0
            */
            function addBlank2LineEnd()
            {
                var string_n=prompt("請問您要給行尾添加幾個空格呢?","1");
                if(isN(string_n))
                {
                    var s="";
                    s+="\\0";
                    var int_n=parseInt(string_n);
                    for(var i=0;i<int_n;i++)
                    {
                        s+=" ";
                    }
                    document.selection.Replace(".$",s,eeFindNext | eeReplaceAll | eeFindReplaceRegExp);
                    document.HighlightFind=false;
                    return;
                }
                else
                {
                    alert("您輸入的不正確,請重新輸入");
                    return;
                }
            }

            /**
            * 將當前正在編輯文檔中的所有>=兩個的相連空格替換成一個,只支持英文半角空格
            *
            * @author Guapo
            * @version v1.0
            */
            function replace2MoreBlank()
            {
                document.selection.Replace(" {2,}"," ",eeFindNext | eeReplaceAll | eeFindReplaceRegExp);
            }

            /**
            * 將當前正在編輯文檔中的所有>=兩個的相連空行替換成一個
            *
            * @author Guapo
            * @version v1.0
            */
            function replace2MoreNewLine()
            {
                return;
            }

            /**
            * 為當前正在編輯文檔中的所有行的行首添加特定的字符串
            *
            * @author Guapo
            * @version v1.0
            */
            function addString2LineStart()
            {
                var s=prompt("請問您要在行首添加什么字符串呢?","在這里輸入要添加的字符串");
                if(s==""||s==null)
                {
                    return;
                }
                var t="\\0";
                document.selection.Replace("(^.)|(^\\n)",s+t,eeFindNext | eeReplaceAll | eeFindReplaceRegExp);
                document.HighlightFind=false;
            }

            /**
            * 為當前正在編輯文檔中的所有行的行尾添加特定的字符串
            *
            * @author Guapo
            * @version v1.0
            */
            function addString2LineEnd()
            {
                var s=prompt("請問您要在行尾添加什么字符串呢?","在這里輸入要添加的字符串");
                if(s==""||s==null)
                {
                    return;
                }
                var t="\\0";
                document.selection.Replace("(.$)|(^\\n$)",t+s,eeFindNext | eeReplaceAll | eeFindReplaceRegExp);
                document.HighlightFind=false;
            }

            function isN(s)
            {
                if(s==null||s=="")
                {
                    return false;
                }
                var array=s.match(/\d+/);
                if(array)
                {
                    if(s==array[0])
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
                else
                {
                    return false;
                }
            }

            mainMenu=CreatePopupMenu();

            mainMenu.Add("拷貝路徑(不含文件名)",1);
            mainMenu.Add("拷貝完整路徑(含文件名)",2);
            mainMenu.Add( "", 0, eeMenuSeparator );
            mainMenu.Add("利用正則表達式提取字符串",3);
            mainMenu.Add( "", 0, eeMenuSeparator );
            mainMenu.Add("刪除行首所有空格",4);
            mainMenu.Add("刪除行尾所有空格",5);
            mainMenu.Add("行首添加n個空格",6);
            mainMenu.Add("行尾添加n個空格",7);
            mainMenu.Add( "", 0, eeMenuSeparator );
            mainMenu.Add("將>=兩個的相連空格替換成一個",8);
            mainMenu.Add("將>=兩個的相連空行替換成一行",9);
            mainMenu.Add( "", 0, eeMenuSeparator );
            mainMenu.Add("在行首添加特定的字符串",10);
            mainMenu.Add("在行尾添加特定的字符串",11);
            mainMenu.Add( "", 0, eeMenuSeparator );
            mainMenu.Add("關于",100);
            var witchItem=mainMenu.Track();

            switch(witchItem)
            {
                case 1:
                    copyPath();
                    break;
                case 2:
                    copyFullName()
                    break;
                case 3:
                    getText();
                    break;
                case 4:
                    deleteLineStartBlank();
                    break;
                case 5:
                    deleteLineEndBlank();
                    break;
                case 6:
                    addBlank2LineStart();
                    break;
                case 7:
                    addBlank2LineEnd();
                    break;
                case 8:
                    replace2MoreBlank();
                    break;
                case 9:
                    replace2MoreNewLine();
                    break;
                case 10:
                    addString2LineStart();
                    break;
                case 11:
                    addString2LineEnd();
                    break;
                case 100:
                    alert("Author:Guapo\nEmail:yangshuai@gmail.com");
                    break;
                default:
                    break;
            }

            posted on 2008-11-02 02:49 肥仔 閱讀(4352) 評論(1)  編輯 收藏 引用 所屬分類: 工具

            評論

            # re: EmEditor 的搜索提取宏  回復  更多評論   

            利用正則表達式提取文本的那個宏我挺喜歡用的
            用來分析一些日志很方便,很容易就可以提取出想要的信息
            不過這個工具有個缺點就是當文本比較大的時候,效率很低
            看了源碼發現,它的時間不是消耗在查找,而是消耗在寫文本上
            它是將匹配結果一行一行地輸出
            更高效的做法是將字符串在內存拼好,一次性輸出
            if(matched){
            editor.NewFile();
            var tmp = [];
            for(var i = 0; i < matched.length; i++){
            tmp.push(matched[i]);
            }
            document.write(tmp.join("\n"));
            }
            測試發現效率高了很多,特此分享,呵呵
            2010-10-02 20:59 | vivi
            国产福利电影一区二区三区久久老子无码午夜伦不 | 欧美午夜A∨大片久久 | 亚洲人成无码www久久久| 久久亚洲欧美日本精品| 热久久视久久精品18| 久久播电影网| 品成人欧美大片久久国产欧美...| 亚洲精品无码久久久久| 日韩人妻无码一区二区三区久久| 国产精品美女久久福利网站| 久久久这里只有精品加勒比| 18禁黄久久久AAA片| 伊人久久综合成人网| 久久人人爽人人爽人人片av高请| 久久国产免费观看精品3| 91精品国产乱码久久久久久| 久久国产精品国产自线拍免费| 91秦先生久久久久久久| 久久久精品波多野结衣| 久久婷婷五月综合色奶水99啪| 亚洲va久久久噜噜噜久久| 99国产欧美精品久久久蜜芽| 国产免费久久精品99久久| 色老头网站久久网| 97久久精品无码一区二区| 精品久久久久久久| 四虎久久影院| av无码久久久久久不卡网站| 久久久精品国产Sm最大网站| 亚洲精品无码久久千人斩| 色综合久久综精品| 久久亚洲中文字幕精品一区| 久久精品国产亚洲AV久 | 久久久久高潮毛片免费全部播放| 国产精品美女久久久久网| 久久久久这里只有精品| 人妻精品久久久久中文字幕69 | 色婷婷综合久久久久中文字幕 | 久久婷婷五月综合色奶水99啪| 香港aa三级久久三级| 久久香综合精品久久伊人|