《Notepad正则表达式剖析.docx》由会员分享,可在线阅读,更多相关《Notepad正则表达式剖析.docx(35页珍藏版)》请在三一办公上搜索。
1、Notepad+快捷键&正则表达式替换字符串&插件使 用介绍发布者:lovelclxf时间:04-21阅读数:798点评:Notepad +绝对是windows下进行程序编辑的神器之一,要更快速的使用以媲美VIM,必须灵活掌握它的快捷 键,下面对notepad +默认的快捷键做个整理(其中有颜色的为常用招数)Notepad +绝对是windows下进行程序编辑的神器之 一,要更快速的使用以媲美VIM,必须灵活掌握它的快捷键, 下面对notepad+默认的快捷键做个整理(其中有颜色的为常 用招数):1.文件相关快捷键Ctrl-OCtrl-NCtrl-SCtrl-Alt-SCtrl-Shift-S
2、Ctrl-PAlt-F4Ctrl-Tab动作定义打开文件新建文件保存文件文件另存为保存所有打开文件打印退出程序文件标签跳转,Ctrl-Shift-Tab文件标签跳转,Ctrl-W关闭当前文件2.编辑相关快捷键Ctrl-CCtrl-InsertCtrl-Shift-TCtrl-X跳至下一个打开文件跳至上一个打开文件动作定义复制同上,复制复制当前行至剪贴板剪切Shift-DeleteCtrl-VShift-InsertCtrl-ZAlt-BackspaceCtrl-YCtrl-AAlt-Shift-方向键或Alt +鼠标左键同上,剪切粘帖同上,粘帖撤销上一次操作同上重做,注:撤销后,重做刚刚撤销的
3、动作列选择模式Shift-Tab (selection of one or full lines)Ctrl-BackSpaceCtrl-DeleteCtrl-Shift-BackSpaceCtrl-Shift-DeleteCtrl-UCtrl-Shift-UCtrl-BCtrl-SpaceCtrl-Shift-Spacemore删除位置之前的Tab删除当前位置至单词开始的内容 删除当前位置至单词结尾的内容 删除当前位置至行首的内容 删除当前位置至行尾的内容 转换为小写转换为大写跳转至配对的括号触发函数自动完成列表触发函数参数提示全选Ctrl +鼠标左键ALT-C非连续性的多区域选择列编辑器Ct
4、rl-D复制当前行至下方,或者复制选中区域至 其后Ctrl-T复制当前行至剪贴板(注:帮助中说是将 当前行与上一行交换位置)Ctrl-Alt-TCtrl-Shift-UpCtrl-Shift-DownCtrl-L与上一行进行交换将当前行上移一行将当前行下移一行删除当前行Ctrl-I-(注:帮助中是分割多行,不过最新版中 不起作用)Ctrl-J合并多行(注:使用时要选择中需要合并 的行)Ctrl-GCtrl-QCtrl-Shift-QTab (selection of lines)跳转至某行对话框 添加/删除注释 区块添加/删除注释one or more full插入TabCtrl-EnterC
5、trl-Alt-RCtrl-Alt-LEnterShift-Enter触发关键字自动完成列表整个页面文字方向从右到左整个页面文字方向从左到右(注:在安装了 zencoding后,此快捷键可能被覆盖) 回车同上建议添加一个快捷键用来复制当前行至下一行:在设置- 快捷键管理中,选择scintilla commands中,找到 SCI_LINEDUPLICATE,给它指定一个快捷键,例如Ctrl+M3.搜索相关快捷键Ctrl-FCtrl-HF3Shift-F3Ctrl-Shift-FF7Ctrl-Alt-F3动作定义打开搜索对话框打开替换搜索对话框搜索下一个结果搜索上一个结果文件中搜索调到寻找结果快
6、速查找下一个Ctrl-Alt-Shift-F3快速查找上一个选定并寻找下一个选定并寻找上一个下一次寻找结果上一次寻找结果增量查找跳至下一个结果,用第n个风格标识格)跳至上一个结果,用第n个风格标识格)收缩展开标签跳至下一个标签处跳至上一标签处Ctrl-F3Ctrl-Shift-F3F4Shift-F4Ctrl-Shift-ICtrl-n(n 为 150是默认风Ctrl-Shift-n(n 为 150是默认风Ctrl-F2F2Shift-F24.显示相关快捷键定义内容Ctrl-(Keypad-/Keypad+)或者 Ctrl+鼠放大/缩小页面标滚轮Ctrl-Keypad/F11F12Ctrl-A
7、lt-FCtrl-Alt-Shift-FAlt-0Alt-(18)Alt-Shift-0Alt-Shift-(18)回复到原始页面大小开关全屏显示(显示标签 页)开关全屏显示(不显示标签页)收缩当前折叠展开当前折叠收缩所有折叠展开相应层折叠展开所有折叠展开所有层次折叠5.运行相关快捷键定义内容F5打开运行窗口Alt-F1获得PHP帮助Alt-F2用 Google 搜索Alt-F3用Wiki搜索哦Alt-F5在本标签页中打开当前目录中,与光标位置文本同名的文件Alt-F6在新标签页中打开当前目录中,与光标位置文本同名的文件Ctrl-Alt-Shift-R在 Chrome 中打开Ctrl-Alt-
8、Shift-X在 Firefox 中打开Ctrl-Alt-Shift-I在 IE 中打开Ctrl-Alt-Shift-F在 Safari 中打开Ctrl-Alt-Shift-O通过Outlook发送当前文件转notepad +正则表达式替换字符串详解表达式说明t制表符.n新行.匹配任意字符.|匹配表达式左边和右边的字符.例如,“ab|bc匹配“ab或者“bc.匹配列表之中的任何单个字符.例如,“ab匹配“a或者“b. “0-9匹配任意数字.人匹配列表之外的任何单个字符.例如,“人ab匹配“a 和“b以外的字符.“人0-9匹配任意非数字字符.*其左边的字符被匹配任意次(0次,或者多次).例如“b
9、e*匹配 “b,“be 或者 “bee.+其左边的字符被匹配至少一次(1次,或者多次).例如“be+匹配“be或者“bee但是不匹配“b.其左边的字符被匹配0次或者1次.例如“be?匹配“b或者“be但是不匹配“bee.人其右边的表达式被匹配在一行的开始.例如“人A仅仅匹配 以“A开头的行.仅仅匹配以“e结尾的行.()影响表达式匹配的顺序,并且用作表达式的分组标记.转义字符.如果你要使用“本身,则应该使用“.例子:原始串str1abc991;str2abc992;str11abc993;str22abc994;str111abc995;str222abc996;str1111abc997;st
10、r2222abc999;目标串:abc1;abc2;abc11;abc22;abc111;abc222;abc1111;abc2222;处理:查找串:strabc替换串:abc1【1】正则表达式应用一一替换指定内容到行尾原始文本如下面两行abc aaaaa123 abc 444希望每次遇到“abc,则替换“abc以及其后到行尾的内容为“abc efg即上面的文本最终替换为:abc efg123 abc efg解决: 在替换对话框,查找内容里输A“abc.* 同时勾选“正则表达式复选框,然后点击“全部替换按钮 其中,符号的含义如下:“.=匹配任意字符“* =匹配0次或更多注意:其实就是正则表达式
11、替换,这里只是把一些曾经提出 的问题加以整理,单纯从正则表达式本身来说,就可以引申出成 千上万种特例。【2】正则表达式应用一一数字替换 希望把asdadas123asdasdas456asdasdasd789asdasd替换为:asdadas123asdasdas456asdasdasd789asdasd在替换对话框里面,勾选“正则表达式复选框;在查找内容里面输入“0-90-90-9,不含引号“替换为:里面输入“012,不含引号范围为你所操作的范围,然后选择替换即可。实际上这也是正则表达式的使用特例,“0-9表示匹配09之间的任何特例,同样“a-z就表示匹配az之间的任 何特例上面重复使用了“
12、0-9,表示连续出现的三个数字“0代表第一个“0-9对应的原型,“1代表第二个“0-9对应的原型,依此类推“、“为单纯的字符,表示添加“或“,如果输入“其它012其它,则替换结果为:asdadas其它123其它asdasdas其它456其它asdasdasd 其它 789 其它 asdasd功能增强(by jiuk2k):如果将查找内容“0-90-90-9改为“0-9*0-9,对应1或123或12345或大家根据需要定制相关内容还有很多,可以自己参考正则表达式的语法仔细研 究一下【3】正则表达式应用删除每一行行尾的指定字符因为这几个字符在行中也是出现的,所以肯定不能用简单的替换 实现比如123
13、45 12653452345需要删除每行末尾的“345这个也算正则表达式的用法,其实仔细看正则表达式应该比较简 单,不过既然有这个问题提出,说明对正则表达式还得有个认识 过程,解决方法如下解决:在替换对话框中,启用“正则表达式复选框在查找内容里面输入“345表示从行尾匹配如果从行首匹配,可以用“人来实现,不过EditPlus有另一个功能可以很简单的删除行首的字符串a. 选择要操作的行b. 编辑一格式一删除行注释c. 在弹出对话框里面输入要清除的行首字符,确定【4】正则表达式应用一一替换带有半角括号的多行 几百个网页中都有下面一段代码:n在替换对话框启用“正则表达式选项,这时就可以完成替换了【5
14、】正则表达式应用一一删除空行启动EditPlus,打开待处理的文本类型文件。 、选择“查找菜单的“替换命令,弹出文本替换对话框。选中 “正则表达式复选框,表明我们要在查找、替换中使用正则表达 式。然后,选中“替换范围中的“当前文件,表明对当前文件 操作。 、单击“查找内容组合框右侧的按钮,出现下拉菜单。 、下面的操作添加正则表达式,该表达式代表待查找的空行。(技巧提示:空行仅包括空格符、制表符、回车符,且必须以这 三个符号之一作为一行的开头,并且以回车符结尾,查找空行 的关键是构造代表空行的正则表达式)。直接在查找中输入正则表达式“沮t*n,注意t前有空格 符。(1)选择“从行首开始匹配,“查
15、找内容组合框中出现字符 “人,表示待查找字符串必须出现在文本中一行的行首。(2)选择“字符在范围中,那么在“人后会增加一对括号“, 当前插入点在括号中。括号在正则表达式中表示,文本中的字符 匹配括号中任意一个字符即符合查找条件。(3) 按一下空格键,添加空格符。空格符是空行的一个组成成 分。(4) 选择“制表符,添加代表制表符的*。(5) 移动光标,将当前插入点移到“之后,然后选择“匹配0次 或更多,该操作会添加星号字符*。星号表示,其前面的括号 “内的空格符或制表符,在一行中出现0个或多个。(6) 选择“换行符,插入“门,表示回车符。 、“替换为组合框保持空,表示删除查找到的内容。单击“替
16、换按钮逐个行删除空行,或单击“全部替换按钮删除全部空行(注意:EditPlus有时存在“全部替换不能一次性完全删除空 行的问题,可能是程序BUG,需要多按几次按钮)。1. 在汉化的时候,是否经常碰到这样的语句需要翻译:Code:“Error adding the post!”;“Error adding the comment!”;“Error adding the user!”;如果有很多类似的文件一个一个翻译显然很累而且感觉很 无聊。其实可以这样处理,在Editplus里面用替换功能,在替 换对话框选中“正则表达式”复选框:查找原文件:Code: “Error adding (人!|;*)
17、替换成:Code:“在增加1时发生错误这样替换之后发生了什么?结果是:Code:“在增加the post时发生错误! ;“在增加the comment时发生错误!;“在增加the user时发生错误! ;ok,接下来你会怎么做?当然再替换一次把the post、the comment、the user替换成你要翻译的词。得到最后的结果:Code:“在增加帖子时发生错误!;“在增加评论时发生错误!;“在增加用户时发生错误!;2. 要提取的单词在中间,比如:Code:can not be deleted becausecan not be added becausecan not be updat
18、ing because可以用这种方式: 在Editplus里面用 替换 功能,在替换对话框选中“正则表达式 复选框:查找原文件:Code:can not be (人*) because替换成:Code:无法被1因为这样替换之后发生了什么?结果是:Code:无法被deleted因为无法被added因为无法被updating因为其余步骤如上。在汉化量很大而且句式比较单调的情况下对效率的提高很 明显!解释一下:(人!|;*)的意思是不等于!和和;中 的任何一个,意思就是这3个字符之外的所有字符将被选中(替 换区域);1即被选中的替换区域所在的新位置(复制到这个新位置)。3. 经常手工清理一行一行地删
19、除文本文件里面的空白行,其 实可以交给Editplus更好的完成,在Editplus里面用替换功能, 在替换对话框选中“正则表达式复选框:查找原文件:Code:沮 t*n替换部分为空就可以删除空白行了,执行一下看看:)abandon2b9nd2nv .抛弃,放弃 abandonment2b9nd2nm2ntn.放弃 abbreviation2bri:viei62nn.缩写 abeyance2bei2nsn.缓办,中止 abide2baidv .遵守ability2bilitin.能力ableeibladj.有能力的,能干的abnormal9bn0:m2ladj.反常的,变态的 aboard2b
20、0:dadv .船(车)上1.查找:(人a-zA-Z0-0-+)(LfrJ psq 二 z LLOP 一 q p L 七廿。攻wEsJSUZoqMZLLgu叉 qp LwirusJUZ9o=-EqzLLUOU2eqqp Ltt密u、17UZEUZPU6qMZL、LU EUOPU2qp 广言。tt萼JUZPU6qMZLLUOPU2qp(*.)(+矣空usJUZ9FNq6LLUOU=oqpL 舞 M 矣空.J9=0qMZLWS=oqpL (卅)盅.pqJP3qMZLLP20qpL 点H 睡必P2SJ一ZEdu = q6LL_2EouqpL 注 H-盎 只盎frFpJ一qo=so_qpLR 盎 ES
21、JU 三 qMZLO 三 qpL frJ psq - NSOP 一 q PL 七 点曙 usJSUZoq-Nsouu叉 qpL w irusJUZ9oM-EqzLLUOU25qqpL u、T7UZEUZPU6qMZL、LU EUOPU2qpL tt密。tt9rJUZPU6qMZLLUOPU2qpM温w坦u 一岑1z L(M)盅.PBJP3q-Ns、p20qpw 睡必F2SJ一ZE3u-q6LL_2E0uqp LgH-盎 只盎frFqJ_qo=so_qp 广只盎日三 q-Ns三 qp3.查找:替换:n效果:“abandon,2”b9nd2n“,v .抛弃,放弃,“abandonment,2b9n
22、d2nm2nt“,n.放弃,“abbreviation,2bri:vi”ei62nVn.缩写,“abeyance,2bei2ns“,n.缓办,中止,“abide,2”baid“,v .遵守,“ability,2”bilitiVn.能力,“able,”eiblVadj.有能力的,能干的,“abnormal,9bn0:m2l“,adj.反常的,变态的,“aboard,2”b0:d“,adv .船(车)上,“abolish,2”b0li6“,v .废除,取消,Zen Coding让Notepad + +代码书写健步如飞(XML CSS应用)Notepad + +是一款无比轻巧便捷的代码编辑工具。它无
23、 可挑剔的启动速度,优秀的语法高亮,干净整齐的代码缩进,便 捷的括号高亮匹配赢得了无数人的喜爱。但,不知道有多少同学跟我一样,在coding时被 Notepad+粗陋的代码自动补全折磨的体无完肤(Notepad+那甚至不能叫自动完成)。虽然无比羡慕诸如 Dreamweaver之类的代码自动完成,但固于上述提到的几点 Notepad+ +的优秀之处,纠结中毅然依旧坚守Notepad+ +。而Zen Coding的横空出世,总算终结了这种纠结,让我们得 以以一种无比帅气的方式书写代码。先看一段演示视频吧(建议反复观摩,其中演示了 Zen Coding的各种典型用法)Notepad +安装 Zen
24、Coding 插件下载 Zen.Coding-Notepad+ + .v0.6.1.zip 解压将解压所得的文件放入Notepad + +程序的安装目录下 的plugins文件夹。重启Notepad + +,即可开始使用Zen Coding。组织, 底打开新建到犊名称ll APRL Config disabled谖doc广. JT _ 一渣 Zeri.Cading-NN子元素(divp, div#footerpspan);E+N兄弟元素(h1 + p, div#header+div#content+div#footer);E*N多项元素(ul#navli*5a);E$*N带序号的元素(ul#n
25、avem-$*5);接下来,我们来熟悉Zen Coding for Notepad + +的快 捷键,也是Zen Coding的精髓【Ctrl + E】 展开缩写(Expand Abbreviation)比如写下 div#pagediv.logo+ulli*3a,按一下 Ctrl+E,立马就可以转化成:【Ctrl+Shift+A】 嵌套代码(Wrap with Abbreviation)world 比如,我们想让写好的hello world ,想在外层 再套一个div,只需按下【Ctrl+Shift+A】,在弹出的对话框 中输入:div.wrap,回车。此标签就能自动被嵌套。甚至,我们可以玩的
26、更炫一些,写好三行列表内容,全裸, 此时没有任何标签。只需按下【Ctrl+Shift+A】,输入ulli*, 回车。这三行内容就能自动被ul li嵌套起来。(不仅限于li列 表哦)ul#navli*aAbout us*Catalog ContactsCtrl+Shift+D 】选中代码块(Balance Tag Inward/Outward)选中当前光标所在的代码块,长按可依次选中父块Ctrl+Alt+ , Ctrl+Alt+】转到上一个/下一个编辑点(Go to Next/Previous Edit Point)按下可以依次跳到可输入内容的编辑点,省去了不停按方向 键或鼠标来定位编辑点的麻烦
27、。spanspanup clas5=titleLorem ipsum aI【Ctrl+Alt+M 】合并行(Merge Lines)将选中的多行代码合并为一行。压缩css、js代码为一行时,这个很方便。Ctrl+A,然后Ctrl+Alt+M,两下即可搞定,免去了动用压缩工具的麻烦。(当然这个只是简单地将代码合并为一行,并不能做更深入的代码压缩)【Alt+/】添加、移除注释(Toggle Comment)注释掉光标所在的代码块(Notepad+自带的Ctrl+Shift+Q也可以用来注释代码)【Ctrl+】空标签转化(Split/Join Tag)比如将 转化为 ,反向亦可。【Ctrl+Shif
28、t+ 】移除标签(Remove Tag)比如将 hello world 移除 div 标签,留下 hello world。好了,目前Notepad + +的Zen Coding只有这几个快捷键, 下面介绍一些常用到的缩写不知道大家新建一个html页面时,是如何输入文档声明和 head那一坨东西的。现在有了 Zen Coding,只需输入几个字 母就能立马生成相应文档声明的html结构框架html:4t (HTML 4.01 Transitional)html:4s (HTML 4.01)html:xt (XHTML 1.0)html:xs (XHTML 1.0 Strict)html:xxs
29、(XHTML 1.1)html:5 (HTML5)head中常用到的一些缩写meta:utf, meta:compatstyle, link:css, link:print, link:favicon, link:rss,script, script:srcbody中会常用到的缩写诸如 div, p, a, ul, ol, input:t, input:r 等等其中,类似ul+的形式可展开为(+号可自动生产默认的 子元素) 类似的还有 ol+, dl+, table+, tr+, select+, map+, optg+ 等IE条件注释:cc:ie6, cc:ie, cc:noie下边是一些典
30、型用法示例:div#name.one.two =title=Hello world rel =tdcolspan = 2 =em$*3 =em$ =em-$-content*3 =#content.section =如果你写了这么一串出来,那么一个页面的基本结构就出来 了:div#page(div#headerul#navli*4a)+(div#page (h1span)+p*2)+div#footer此外【|e】可以输出转义字符<div id = wrap> <div class=content> <p></p> </div><
31、;/div>div#wrapntentp|e|e 可转化为:<div id="wrap"><div class="content"> <p></p></div></div>以上介绍的仅仅是有关HTML的缩写,CSS的缩写就更多了,建议查看Zen Coding小抄,学习CSS的Zen Coding 方式自己编写缩写规则pluginsNppScriptingincludesZen Cod
32、ing.js在其中对应位置仿照已有规则添加自己的缩写规则。也可以 修改缩写规则更符合自己的习惯。即使你不编写自己的缩写规则,也强烈建议你阅读此文件, 熟悉Zen Coding自带的一些缩写规则,让代码书写更加事半 功倍最后,Zen Coding 不仅有 Notepad+版,Aptana、 UltraEdit、Dreamweaver也有相应版本,速速前往官方下载 页查找是否有你常用的编辑器的Zen Coding插件吧Notepad +插件附带的Plugin Manager插件XML Tools这个插件是包含了很多XML编辑方面的实用工具。比如XML语法规则检查,XML Schema和DTD确认,
33、XML标签自 动关闭,当前XML路径,XML和Text转换,注释和非注释切 换等等。Insertion这是一个主要用于演示的插件,适合初次开发者用于实例学 习。它的功能是插入当前文档的名称和日期时间,以及自动关闭 html/XML 标签。Doc Updater每三秒自动更新你Notepad+ +中打开的文档。TextFxTextFx是预装在Notepad+ +中的一个插件,功能非常强 大,包括各种代码的转换、插入、优化、格式化和验证等等,能 很方便的提高你的工作效率。SearchInFiles一个友好的Notepad+文件搜索工具。QuickText一个非常出色的代码片段管理器,支持Notep
34、ad+所支持的所有语言类型。Spell-checker拼写检查工具.需要先安装AspelloNppExec使用NppExec插件,你可以不需要离开Notepad+ +即可运行你的命令行或保存脚本,大大提高你的效率。Compare Plugin一个非常实用的工具,可以用来比较两个文件不同之处.DBGP plugin你可以使用这个插件把你的Notepad+变成一个phpIDEoMultiClipboardNotepad的剪贴板功能增强插件。FTP_synchronize一个集成于Notepad+ +的FTP客户端。Gmod 10 Lua Syntax HighlighterNotepad + +的
35、一个语法高亮插件。SpeechPlugin文本转语音朗诵插件。Log plugin这个插件可以让Notepad+实现Windows内置记事本的一个功能:当文件为.log,每次打开后可以附加日期和时间。下面介绍Notepad+ +的svn插件的安装及使用。如图 12,点击 Plugin - Plugin Manager - Show Plugin Manager邕 D:svnldevcentdr1 lindex.php - Notepad.File Edit Sear uh Vi 已网 En 匚 oding Language Settings M 占匚 m Findex.php财&言穿占金I融E
36、曲惫i n?php2& def ins (rpSF_ PATH, dirname (FILE)4 def ine (rrAPP PATH:r, dirnaine (FILE);5 S spConfig = array(打开后,在“Available”页找到“Subversion”,然后点击“Install”,如图 13 所示:D:5vndeYcenter1index.php - Notepad+ +File Edit Search View Encoding Language Settings Macro Run Plugiindex.php-1艺34567fi.91011理1314IS1$:
37、1H192Df 丞蕴11 A 眄 lh 1 n Subversion - Commit File(或使用快捷键 Ctrl+Alt+A)File Edit SearchQ e9曰 index.phpn?phpI/*Message:Recent messages12345678y1011121314151617E D: tevnldevcenter1 M n dex. ph p Note pad+ +W Commit - D:lsvndevcenterl1Commit to:https:/svn. sinaapp .com/devcenter/ 1/inde:definedefineSspConedit index-php using piot;epa(