`

vi 正则表示达与python, C#, perl正则表达式的区别?

阅读更多

有这样一段文本

 

// 实际空间为0x5050~0x509F
#define NSEVT_SM_SEC_CODEBASE NSEVT_SWDL_CODEBASE_END //0x5050
#define NSEVT_SM_SEC_CODEBASE_END (NSEVT_SM_SEC_CODEBASE + 0x50 ) //0x50A0

// 实际空间为0x50A0~0x50F0
#define NSEVT_ION_CODEBASE_EXT NSEVT_SM_SEC_CODEBASE_END //0x50A0
#define NSEVT_ION_CODEBASE_EXT_END (NSEVT_ION_CODEBASE_EXT + 0x50 ) //0x50F0

 

有这样一个正则表达式

#define\s+([a-zA-Z_0-9]+)\s+(0x[0-9A-F]*)\s*(//(.*))*$

使用python, C#, ultraedit中的 perl正表达表示式可以正确匹配, 但在vi中就死活不行

据说vi使用的正则表达式遵循posix标准,和unix下的 grep, awk,sed是一样的,

 

《OReilly.Learning.the.vi.and.Vim.Editors.7th.Edition.Jul.2008.pdf》中如是说:

For the most part, the same regular expressions work with other Unix programs, such
as grep, sed, and awk.Much more information on regular expressions can be found in the two O’Reilly books sed & awk, by Dale
Dougherty and Arnold Robbins, and Mastering Regular Expressions, by Jeffrey E.F. Friedl.

 

看来之前习惯使用的表示式在vi上要再学一习了, 想想也是,vi最初是在unix上用,接着推广到别的平台上,不遵循posix还遵循啥呢?

正好手里有 sed&awk这本书,参考之后再来看看对应上边的文本,用vi该怎么写表达式,现在搞得我连删除空白行都得在ultraedit中搞。。。

分享到:
评论

相关推荐

    关于在LABVIEW中使用正则匹配公式.vi

    在labview中使用正则匹配模式很简单,难的就是使用正则表达式。很多人都搞不明白,查了很多资料还是不太明白。实际上就是一些类似通配符在作怪和其他语言也差不多。附件带上了,可以研究研究,构造正则表达式的方法...

    正则表达式之道.doc

    绝大部分的例子是基于vi中的文本替换命令和grep文件搜索命令来书写的,不过它们都是比较典型的例子,其中的概念可以在sed、awk、perl和其他支持正则表达式的编程语言中使用。你可以看看不同工具中的正则表达式这一节...

    正则表达式使用详解及使用实例

    简单的说,正则表达式是一种可以用于模式...反之,如果用户输入的邮件地址与正则表达的模式不匹配,将会弹出提示信息,要求用户重新输入正确的邮件地址。由此可见正则表达式在WEB应用的逻辑判断中具有举足轻重的作用。

    正则全集\正则表达式使用详

    我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或sed shell程序等。此外,象JavaScript这种客户端的脚本语言也提供了对正则表达式的支持。由此可见,...

    VIM正则表达式查找替换[PDF电子教程]

    VIM,很好很强大;正则表达式亦是如此。将两者有机结合起来,使工作效率更高。本教程面向正则表达式爱好者或有一定基础的VIM用户。非常之详细。

    专家教您如何在C语言中巧用正则表达式

    如果用户熟悉Linux下的sed、awk、grep或vi,那么对正则表达式这一概念肯定不会陌生。...千万不要以为正则表达式只是Perl、Python、Bash等脚本语言的专利,作为C语言程序员,用户同样可以在自己的程序中运用正则表达式。

    正则表达式PPT(高级篇)

    发明BSD、TCP/IP、csh、vi和NFS的SUN首席科学家Bill Joy说过,在计算机...这些包括分组交换网络、WEB、lisp、哈希算法、UNIX、编译技术、关系模型、面向对象、XML这些大名鼎鼎的家伙,而正则表达式绝对不应该被漏掉。

    vim编辑器中熟练掌握正则表示法

    熟练掌握正则表示法 简单地说,正则表示法就是处理字符串的方法,它以“行”为单位来进行字符串的处理。正则表示法透过一些特殊符号的辅助,可以让使用者轻易完成查找/删除/替换某些特定字符串的工作。 举例来说,...

    JAVA 正则表达式陈广佳版本(超详细)

    在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包。...此外,许多使用比较广泛的脚本语言也支持正则表达式,比如Python,Tcl,JavaScript,以及最著名的Pe

    Shell正则表达式学习笔记

    正规表示法(或称为常规表示法)是透过一些特殊字符的排列,用以搜寻/取代/删除一列或多列文字字符串, 简单的说,...二、正则表达式与通配符 1. 正则表达式 用来在文件中匹配符合条件的字符串,正则表达式是“包含匹

    常用正则表达式汇总文档

    常用正则表达式汇总,非常值得收藏,网上有很多vi的在线手册,你可以访问他们以获得更加完整的信息。

    PHP正则表达式30分钟快速学习方法

    我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例 如,vi编辑器,Perl或PHP脚本语言,以及awk或sed shell程序等。此外,象JavaScript这种客户端的脚本语言也提供了对正则表达式的支持。

    正则表达式性能优化方法(高效正则表达式书写)

    这里说的正则表达式优化,主要是针对目前常用的NFA模式正则表达式,详细可以参考:正则表达式匹配解析过程探讨分析(正则表达式匹配原理)。从上面例子,我们可以推断出,影响NFA类正则表达式(常见语言:GNU Emacs,...

    常用正则表达式.txt

    字符串匹配处理规则, 应用广泛,可以应用于: java grep vi; 学习建议: 1 要能够读懂"正则表达式" 2 能够写出简单的"正则表达式" 3 不要过多的分配学习时间!

    cpp-Vis基于Plan9结构正则表达式类似vi的编辑器

    Vis - 基于Plan 9结构正则表达式类似vi的编辑器

    正则表达式参考

    介绍了正则表达式在各种语言环境下的包参考,包括java c vi python等等。

    深入php 正则表达式的学习探讨

    我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或sed shell程序等。此外,象JavaScript这种客户端的脚本语言也提供了对正则表达式的支持。由此可见,...

    2019千峰Python超详细入门教程(百度云盘分享).docx

    ├─千锋Python教程:第02章 运算符与表达式(7集) │ │ .DS_Store │ │ │ ├─code │ │ 1、运算符与表达式.py │ │ 2、运算符与表达式.py │ │ │ └─video │ 千锋Python教程:10.算术&赋值&位&关系...

    regex-cheatsheet:不同正则表达式语法的备忘单

    正则表达式语法备忘单 许多程序使用正则表达式来查找和替换文本。 然而,它们往往带有自己不同的风味。 您可能会期望大多数现代软件和编程语言都使用 Perl 风格的一些变体,“PCRE”; 然而,命令行工具(grep、...

    基于Plan 9的结构正则表达式的类似于vi的编辑器-C/C++开发

    Vis-将模态编辑与结构正则表达式相结合Vis旨在成为一款现代,无遗留,简单而高效的编辑器,结合了vi(m)和sam的优势。 它通过内置的i Vis扩展了vi的模态编辑-将模态编辑与结构正则表达式相结合Vis的目标是成为一种...

Global site tag (gtag.js) - Google Analytics