欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Notepad++ 与正则表达式使用

程序员文章站 2022-08-27 21:29:56
Notepad++ 与正则表达式使用...
它与前日提到的 scite 都使用了 scintilla 作为编辑组件,在 windows 平台的*文本编辑器中可谓出类拔萃。其特色于官方网站介绍详尽,图文并茂,此处不再赘述。
  昨天卖了个关子,今天就在此略微探讨一下。
  眼下已经有了各公司的代码文件,000002、000006……排成一列,要想变成 <a href="网页地址?code=公司代码">公司代码</a>,该如何做呢?为了简便起见,就用 url 三个字符代替网页地址。
  用 notepad++ 打开公司代码文件,把光标移至开头(快捷键为 ctrl+home),选择 search 菜单中的 replace...(快捷键为 ctrl+h),打开 replace 对话框。在 find what 中输入“(.+)”(没有引号,而且都是半角符号),在 replace with 中输入“<a href="url?code=\1">\1</a>”,切记要选择 regular expression 选项,然后按 replace all 按钮。几百行公司代码转瞬间就会被替换成所需的格式。
  那么,为什么用“(.+)”就可以选择一行代码呢? “\1”又是做什么的呢?
  首先需要说明一点,notepad++ 的是以行为单位的。在查找表达式中,“.”表示任意字符;“+”表示匹配 1 次或多次,比如,ab+c 可以匹配 abc,abbc,abbbc 等;圆括号“(”和“)”分别为匹配区域的起始和结束。由此可知,“(.+)”可以匹配任何一行内容。
  在替换表达式中,“\1”表示第一个匹配区域所匹配的内容,依此类推,“\n”表示第 n(可取 1-9)个匹配区域所匹配的内容。将匹配的内容代入,就得到了所需的格式。通过“\n”可以改变查找字符串的顺序,并创造出新的组合,大有用处。
  极为灵活,要做此事还有许多其他方法。比如,在查找处可以输入“[0-9]+”,亦可达到同样的效果。这里方括号“[]”表示符号集合,“[0-9]”表示 0 至 9 这十个数字中的任何一个,而“[0-9]+”则表示全部为数字的一行。
  功能强大,若能恰当使用,可事半功倍。有兴趣的话,可以参考一下 notepad++ 的帮助。