正则表达式匹配c ++注释左侧的字符串

时间:2011-03-23 15:25:27

标签: regex comments regex-group

我正在寻找一种模式来提取c ++注释和注释本身的字符串。问题是,左侧也可以包含单个斜杠。

示例:

"abc/def//comment"

因此,我希望有2个小组,其中包含评论的左侧和评论本身:

  1. ABC / DEF
  2. //注释
  3. 有什么建议吗?

2 个答案:

答案 0 :(得分:2)

假设您正在逐行处理文件,这个正则表达式将按您的要求执行:

((?:(?!//).)*)(//.*)

或简单地说:

(.*?)(//.*)

即,第1组包含abc/def,第2组包含//comment

请注意,如果此操作失败,请使用字符串文字和多行注释(仅列出两个陷阱):

"a string with // in it"

/*
// not a comment!
*/

答案 1 :(得分:0)

echo "abc/def//comment" | sed -r 's|(.*)//(.*)|\1 //\2|'
abc/def //comment

多条斜线怎么样? Strings里面的评论还可以吗?