• <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
            日韩久久久久中文字幕人妻 | 国产成人久久精品二区三区| 国产亚洲色婷婷久久99精品| 青青草国产精品久久| 久久国产福利免费| 无码人妻久久久一区二区三区 | 精品国产青草久久久久福利| 亚洲色欲久久久久综合网| 亚洲精品无码专区久久久| 一级做a爰片久久毛片人呢| 伊人色综合久久天天网| 中文精品久久久久国产网址| 麻豆av久久av盛宴av| 国内精品久久久久久中文字幕| 97久久婷婷五月综合色d啪蜜芽| 热久久这里只有精品| 老男人久久青草av高清| 久久精品国产亚洲精品| 久久亚洲精品视频| 九九精品99久久久香蕉| 一本色道久久99一综合| 亚洲日本久久久午夜精品| 岛国搬运www久久| 99久久亚洲综合精品成人| 99久久无码一区人妻a黑| 久久精品国产亚洲AV忘忧草18| 国产毛片久久久久久国产毛片 | 久久久久久久久66精品片| 久久国产热这里只有精品| 国产精品久久久福利| 亚洲午夜久久久久久久久电影网| 三级片免费观看久久| 欧美日韩中文字幕久久久不卡| 久久国产视屏| 亚洲国产成人精品女人久久久| 亚洲国产成人久久精品99| 亚洲欧美国产精品专区久久| 伊色综合久久之综合久久| 7777久久久国产精品消防器材| 久久婷婷五月综合国产尤物app| 久久午夜无码鲁丝片秋霞|