`
gaofen100
  • 浏览: 1187297 次
文章分类
社区版块
存档分类
最新评论

正则表达式语法学习(Python/Qt/Vim)

 
阅读更多
  • VIM 对转义字符的处理上有 magic、nomagic、very magic、very nomagic 4种方式,下面提到的是magic下情况。
  • Qt 在贪婪非贪婪是通过额外的选项设置的,不体现在pattern中

Python

Qt

VIM

字符串开头

^
\A

^

^

vim中,\A代表非字符,与\a即[0-9A-Za-z]对应

字符串结尾

$
\Z

$

$

单词边界

\b

\b

\<
\>

vim中\b代表退格,其他[\b]表示退格

单词字符

\w

\w

\w

对于vim,指[0-9A-Za-z_],其他,包含Unicode

数字字符

\d

\d

\d

对vim,指[0-9],其他,包含Unicode数字字符

0次或1次

?
??
{,1}
{,1}?
{0,1}
{0,1}?

?
{0,1}

\?
\=
\{,1}
\{-,1}
\{0,1}
\{-0,1}

Python中额外带问号的是非贪婪模式
vim中带负号的是非贪婪
?*+这3种都可以看作{m,n}的特例,后面不再列这么多了

0次或多次

*
*?

*

*
\{}
\{-}

1次或多次

+
+?

+

\+

重复n次

{n}

{n}

\{n}
\{-n}

n次以上

{n,}
{n,}?

{n,}

\{n,}
\{-n,}

n到m次

{n,m}
{n,m}?

{n,m}

\{n,m}
\{-n,m}

子表达式(分组)

(...)

(...)

\(...\)

两种用途,分组以便应用重复,回溯引用通过\1\2...

引用子表达式

\number

\number

\number

只是分组

(?:...)

(?:...)

\%(...\)

不计算为子表达式个数,不能回溯

向前查找(lookahead)

(?=...)

(?=...)

\(...\)\@=
\&

比如"zhang(?=800)"找到zhang后要检查其后是否是800,是则成功。将匹配zhang800而不是zhang801中的zhang

负向前查找(negative lookahead)

(?!...)

(?!...)

\(...\)\@!

同上,只是不是...则成功。"zhang(?=800)"匹配dbzhang801而不是dbzhang800中的zhang

向后查找(positive lookbehind)

(?<=...)

\(...\)\@<=

比如"(?<=db)zhang"找到zhang后要检查其前面是否是db,是则成功。匹配dbzhang而不是debaozhang的zhang.

负向后查找(negative lookbehind)

(?<!...)

\(...\)\@<!

同上,最后,不是...则成功。匹配debaozhang中的zhang

参考


分享到:
评论

相关推荐

    vim正则表达式的使用

    vim正则表达式的使用,轻松处理文本文件

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

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

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

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

    grep用法详解---grep与正则表达式

    首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同! 正则表达式只是一种表示法,只要工具支持这种表示法, ...vim、grep、awk 、sed 都支持正则表达式,也正是因为由于它们支持正则,才显得它们强大。

    Vim中查找替换及正则表达式的使用详解

    Vim中的正则表达式功能很强大,如果能自由运用,则可以完成很多难以想象的操作。下面这篇文章主要给大家介绍了关于Vim中查找替换及正则表达式使用的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来...

    grep用法详解 grep与正则表达式

    vim、grep、awk 、sed 都支持正则表达式,也正是因为由于它们支持正则,才显得它们强大;在以前上班的公司里,由于公司是基于web的服务型网站(nginx),对正则的需求比 较大,所以也花了点时间研究正则,特与大家分享...

    linux下关于正则表达式grep的一点总结

    正则表达式(Regular Expression)是用于描述一组字符串特征的模式,用来匹配特定的字符串。通过特殊字符+普通字符来进行模式描述,从而达到文本匹配目的工具。类似于生活中常见的寻人启示,通过描述一个人的特征来...

    vim设置20130906, 适合编程爱好者

    "source ~/.vim/bundle/unite.vim/conf.vim "neosnippet.vim source ~/.vim/bundle/neosnippet/conf.vim "vimshell.vim, vim中使用shell, 最好一款 source ~/.vim/bundle/vimshell/conf.vim "omnicppcomplete.vim...

    vimtips 学习VIM的理想资源

    学习vim: http://www.vim.org/ O cial site http://chronos.cs.msu.su/vim/newsgroup.html Newsgroup and Usenet http://groups.yahoo.com/group/vim Speci c newsgroup http://u.webring.com/hub?ring=vim VIM ...

    Vim QT版本源代码

    Vim QT版本源代码 基于QT图形界面得VIM 大家可以尝尝鲜 只有源代码 要自己编译 需要QT得编译环境

    vim-HideShow:基于正则表达式的交互式折叠

    隐藏显示.vim HideShow 可以轻松地将基于正则表达式的折叠应用于您的 vim 缓冲区。 例如,Java 源文件的简单折叠可能是: :Show \v (public|private|protected) :Show 和 :Hide 调用是累积的,因此以下三个 :Show ...

    Python-Pythonmode将Vim变成PythonIDE的一款多合一插件

    Python-mode:将 Vim 变成 Python IDE 的一款多合一插件

    python实例手册.py

    mv /usr/bin/python /usr/bin/python_old ln -s /usr/local/python27/bin/python /usr/bin/ python # 查看版本 解决YUM无法使用的问题 vim /usr/bin/yum 首行#!/usr/bin/python 替换为老版本python #!/usr/...

    qt-support.vim:Qt对Vim的支持

    mkdir -p ~/.vim/pack/bundle/start cd ~/.vim/pack/bundle/start git clone https://github.com/fedorenchik/qt-support.vim.git 文件类型: C ++ qmake qml qbs qrc-XML ui-XML ts-XML 地位: 语 文件...

    Python-Syntastic是Vim的一个语法检查插件

    Syntastic是Vim的一个语法检查插件,通过外部运行文件检查语法并显示可能产生的错误给用户

    QtCreator vim 配置方案

    Qt Creator vim 配色方案,放到QT creator 安装文件夹下的style文件里。这个配色护眼,清楚

    linux VIM 配置文件

    vimrc文件拷贝到用户家目录和root家目录下更名为.vimrc 两个TXT文件拷贝到/usr/share/vim/vim73/doc 目录下 两个VIM文件拷贝到/usr/share/vim/vim73/plugin目录下

    vim-bluespec

    该模式主要是从头开始编写,有两个从 VIM 的 Verilog 模式复制的正则表达式。 要使用,请为您的 vim 设置创建一个 ~/.vim 目录,包含子目录 ~/.vim/ftdetect 、 ~/.vim/indent 和 ~/.vim/syntax。 然后将文件从 ...

    vim/vi键盘图

    vim使用很方便的快捷键图纸,方便学习,打印出来贴在面前随时查阅

Global site tag (gtag.js) - Google Analytics