在正则表达式中不含某个单词

qiaochenglei 2009-06-02 09:38:00
怎么在正则表达式中不含某个单词啊。
我的目标是解析C++头文件,找出那些public的函数声明。
所以要求 在public:和要找到的函数声明之间不含有private:和protected:请问怎么才能做到啊。
最好给个示例。谢谢大家了!!
...全文
540 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiaochenglei 2009-06-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 TADICAN 的回复:]
public:([.](?!(private:|protected:)))*
[/Quote]谢谢了
qiaochenglei 2009-06-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 taodm 的回复:]
楼主啊,这个活不适合正则表达式来干。
去学xBNF吧。这是lex/yacc类工具的事儿。
[/Quote]最多也就这么复杂了,再说你说的那个我也不会啊
taodm 2009-06-03
  • 打赏
  • 举报
回复
楼主啊,这个活不适合正则表达式来干。
去学xBNF吧。这是lex/yacc类工具的事儿。
Treazy 2009-06-03
  • 打赏
  • 举报
回复

#perl xx.pl xx.h

#xx.pl
if(open FILE, $ARGV[0])
{
my $Line;
my $Flag = 0;

while($Line = <FILE>)
{
if($Line =~ /public:/)
{
$Flag = 1;
next;
}
elsif($Line =~ /(private:|protected:)/)
{
$Flag = 0;
next;
}

if($Flag == 1)
{
print $Line;
}
}
}
TADICAN 2009-06-02
  • 打赏
  • 举报
回复
public:([.](?!(private:|protected:)))*
TADICAN 2009-06-02
  • 打赏
  • 举报
回复
零宽断言

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧