• <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

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

            EmEditor 的搜索提取宏

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

             

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

            image

            image 

            image

             

            3、宏-〉設(shè)置為當(dāng)前宏

            image

             

            4、按下F4就運行宏了

            image

             

             

             

             

             

            /**
            * 根據(jù)輸入的正則表達式,提取與之匹配的字符串,并新建一個文檔顯示所有匹配的字符串,
            * 顯示時每個匹配項占一行
            *
            * @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("請保存文件后再執(zhí)行此命令");
                }
            }

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

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

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

            /**
            * 為當(dāng)前正在編輯文檔的每一行的行首添加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("您輸入的不正確,請重新輸入");
                }
            }

            /**
            * 為當(dāng)前正在編輯文檔的每一行的行尾添加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;
                }
            }

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

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

            /**
            * 為當(dāng)前正在編輯文檔中的所有行的行首添加特定的字符串
            *
            * @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;
            }

            /**
            * 為當(dāng)前正在編輯文檔中的所有行的行尾添加特定的字符串
            *
            * @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("關(guān)于",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 的搜索提取宏  回復(fù)  更多評論   

            利用正則表達式提取文本的那個宏我挺喜歡用的
            用來分析一些日志很方便,很容易就可以提取出想要的信息
            不過這個工具有個缺點就是當(dāng)文本比較大的時候,效率很低
            看了源碼發(fā)現(xiàn),它的時間不是消耗在查找,而是消耗在寫文本上
            它是將匹配結(jié)果一行一行地輸出
            更高效的做法是將字符串在內(nèi)存拼好,一次性輸出
            if(matched){
            editor.NewFile();
            var tmp = [];
            for(var i = 0; i < matched.length; i++){
            tmp.push(matched[i]);
            }
            document.write(tmp.join("\n"));
            }
            測試發(fā)現(xiàn)效率高了很多,特此分享,呵呵
            2010-10-02 20:59 | vivi
            久久久亚洲裙底偷窥综合| 久久男人AV资源网站| 久久久久亚洲精品无码蜜桃| 久久夜色精品国产噜噜麻豆 | 久久人人爽人人人人片av| 久久综合久久鬼色| 久久久久久国产精品无码下载| 中文字幕无码免费久久| 狠狠久久亚洲欧美专区| 热RE99久久精品国产66热| 欧美黑人激情性久久| 国产精品热久久无码av| 四虎国产精品免费久久| 国内精品久久久久影院一蜜桃| 久久国产精品免费一区二区三区 | 久久久久亚洲精品无码网址 | 理论片午午伦夜理片久久 | 久久婷婷五月综合97色直播| 国产午夜福利精品久久2021| 天堂无码久久综合东京热| 好属妞这里只有精品久久| 久久久久久精品免费免费自慰| 青青国产成人久久91网| 97久久国产露脸精品国产| 久久精品亚洲福利| 99久久人妻无码精品系列蜜桃| 亚洲一区精品伊人久久伊人| 国产成人无码精品久久久免费 | 久久精品无码一区二区三区免费 | 久久国产乱子伦免费精品| 精品久久久久久久久免费影院 | 热久久国产欧美一区二区精品| 久久久久久久综合日本亚洲| 97精品伊人久久久大香线蕉| 久久精品国产一区二区三区| 欧美777精品久久久久网| 久久国产色AV免费观看| 欧美一区二区三区久久综合| 久久妇女高潮几次MBA| 伊人久久精品影院| 久久久久久亚洲精品影院|