c++正则表达式,python

原创 2007年10月03日 21:32:00
一个python中国列表的朋友给的
------------------------------------------------------------------------------------------------------------------------------------------
C++ grammar summary

Execution parts:

////////////////////////Well-known definitions: (They do only their business, any stuff not belong to them will be not processed)
blank: /s*
strictblank: /s+
number: OR:
           r"[/d]+",r"[.][/d]+",r"[/d]+[.][/d]*",
             r"[/d]+[.]?e(?:[+]|-|)[/d]+",r"[.]?[/d]+(?:e|E)(?:[+]|-|)[/d]+",
             r"[/d]+[.][/d]*e(?:[+]|-|)[/d]+",
             r"0[xX][0-9a-fA-F]+", #Hex number
             r"0[0-8]+", #Octal number
             r"'[^']+'"
string: "(?:[^//]|//.)+"
value: [bool|number|string]
literal: [a-zA-Z_][0-9a-zA-Z_]*
bool: [true|false]

////////////////////////Semi-atom level definitions: (iterates will process all begin blank but no after blanks will be processed)
type: literal (blank :: blank literal)*
valueiterate: (blank(operators|operator,|value|literal| [(] strictvalueiterate blank [)]))*
strictvalueiterate: (blank(operators|operator,|value|literal| [(] strictvalueiterate blank [)]))+
passvalueiterate: (blank(operators|value|literal| [(] strictvalueiterate blank [)]))*
strictpassvalueiterate: (blank(operators|value|literal| [(] strictvalueiterate blank [)]))+
operators: OR:
               "new","delete","delete" blank [ blank ],"++","--","<<",">>",
               "!","&&","||",">=","<=",">","<","!=","==",
               "+=","-=","*=","/=","%=",
               "^=","&=","|=",
               "->",",",
               ".","::",
               "^","&","|","~",             
               "+","-","*","/","%",
               "[","]","(",")"

assignname: (blank [*|&])* blank literal (blank [ blank /d* blank ] )*

assignvaluector: blank [(] (blank strictpassvalueiterate (blank , blank strictpassvalueiterate)+)? [)]
assignvaluecopy: blank = blank strictpassvalueiterate
assignvaluevoid:
assignvalue: ( assignvaluector | assignvaluecopy | )
valuesingledefinition: blank type blank assignname (assignvaluector | assignvaluevoid)

functionspecifier: (blank [inline|virtual|explicit|auto|register|static|extern|mutable|extern|static])*

////////////////////////Atom level definitions: (Every thing that can be treated as a language sentence) (only begin either)
valueblock: valueiterate blank ;
if: blank "if/b" blank ( strictvalueiterate blank ) [sentencelite|sentenceblock]
for: blank "for/b" blank ( [valuesingledefinition|passvalueiterate] blank ; passvalueiterate blank ; passvalueiterate blank ) [sentencelite|sentenceblock]
while: blank "while/b" blank ( strictvalueiterate blank ) [sentencelite|sentenceblock]
do: blank "do/b" blank sentenceblock blank while blank ( strictvalueiterate blank ) blank ;
break: blank "break/b" blank ;
return: blank "return/b" [strictvalueiterate|] blank ;

sentencelite: blank [break|return|valueiterate blank ;]
valueassign: blank type blank assignname assignvalue (blank , assignname assignvalue)* blank ;
sentence: [sentencelite|valueassign]

////////////////////////Segments: (only begin either)
sentenceblock: blank { blank (sentence)* blank }
structblock: blank { blank [public:|private:|valueassign|function|struct|structdef] blank }

////////////////////////First class objects:
function: blank functionspecifier blank type blank ( blank (valuesingledefinition (blank , valuesingledefinition)* )? blank )
          [(blank : blank type blank "(" sentence blank ")" (blank , blank type blank "(" sentence blank ")")*)? sentenceblock|;|= blank 0 blank ;]
namespace: blank "namespace" blank literal blank { blank document blank }
usenamespace: blank use blank "namespace" blank literal blank ;
struct: blank ["struct"|class|union] blank literal [blank : (blank [public|private|protected|] blank literal (blank , blank [public|private|protected|] blank literal)*)? structblock ( blank assignname assignvalue (blank , assignname assignvalue)*)? blank ;
structdef: blank ["struct"|class|union] blank literal blank ;
document: (blank [ valueassign|function|namespace|struct|structdef ])* 

什么是正则表达式?浅谈 c++中的正则表达式

截取作者c++部分 原文地址 什么是正则表达式? 正则表达式(Regular Expression)就是用某种模式去匹配一类字符串的公式。如你要在一篇文章中查找第一个字是“李”最后一个字是...
  • jiadabin
  • jiadabin
  • 2015年01月14日 18:25
  • 660

正则表达式简介及在C++11中的简单使用

正则表达式简介及在C++11中的简单使用
  • fengbingchun
  • fengbingchun
  • 2017年02月02日 13:41
  • 7584

C++正则表达式的使用

C++里面使用正则表达式一般有三种:C regex,C ++regex,boost regex C regex 的速度是最快的 C++ regex 速度一般 boost regex 速...
  • makenothing
  • makenothing
  • 2015年12月25日 19:56
  • 12569

C++中正则表达式使用,正则表达式语法以及常用正则表达式大全

     vc++2010里正式对正则表达式进行支持,这无疑是vc++2010的一大亮点,给VS下c++开发者带来了许多方便。通过自己的使用,深感正则表达式的强大功能。所以总结一些简单的介绍,并与大家...
  • wjhuangjin
  • wjhuangjin
  • 2009年11月20日 22:19
  • 7401

c++ 使用正则表达式分割字符串

#include #include #include int main(){     std::string  s = "who,lives:in-a,pineapple  under ...
  • liuzhoulong
  • liuzhoulong
  • 2011年09月18日 16:53
  • 3236

利用PYTHON的正则表达式去掉代码中的注释

校招时,百度二面的时候,让我写一个删除代码中的注释的代码,当时卡壳了。时隔一年多,想起这个问题,现在把这个写下来。先说一下代码的思想,首先将“字符串”进行替换,替换成 uuid ,并且把字符串的内容存...
  • qiuchang008
  • qiuchang008
  • 2016年02月28日 18:39
  • 1018

C++ STL之正则表达式

正则表达式是C++11标准库中新加入的强大工具。正则表达式是一种用于字符串处理的微型语言,适用于一些与字符串相关的操作。C++11包含了对以下几种语法的支持:ECMAScript、basic、exte...
  • u011475134
  • u011475134
  • 2017年07月27日 00:33
  • 658

c++实现正则表达式匹配

c++11之后封装了自己的正则表达式,直接包含文件即可使用,利用regex类声明对象初始化正则表达式,regex expressionName (“正则表达式”);正则表达式具体语法参考这里;rege...
  • bwangk
  • bwangk
  • 2016年09月25日 22:39
  • 2391

c++ 正则表达式

正则表达式是常用的一种方法。比较有名的类库是boost,但是这个类库在重了。所有就像找一些轻量级的类库。 后来发现准标准的库tr1已经很方便了,微软vs2008 sp1 以上版本都支持了。所有就直接...
  • zhulinu
  • zhulinu
  • 2013年12月05日 20:34
  • 16030

C++标准库中正则表达式简介

C++标准库中正则表达式的使用                                                                                    ...
  • qianghaohao
  • qianghaohao
  • 2016年02月24日 03:22
  • 3720
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++正则表达式,python
举报原因:
原因补充:

(最多只允许输入30个字)