如何用正则表达式来匹配c语言风格的注释?楼主chocean()2006 04 30 15_48_05 在 专题开发_技术_项目 _ 数据结构与算法 提问
如何用正则表达式来匹配c语言风格的注释?楼主CHOcean()2006-04-30 15:48:05 在 专题开发/技术/项目 / 数据结构与算法 提问
一个cpp文件会包括很多次/…../ 形式的注释。用”/*.*/”只能匹配出现一次的注释。比如有/ line1 / …/ line n */ 的字符串,只会被匹配到一次,因为首尾都符合匹配条件。
往下一步想,匹配规则应该为: /开头, 中间不包括/, 结尾是*/
但是“中间不包括/”不知如何实现,现在只能做到”/*[^/]*/” (中间不包括/)
求高手指点
问题点数:20、回复次数:4
Top
1 楼mmmcd(超超)回复于 2006-05-01 09:55:10 得分 0 “中间不包括/” <=> “中间不包括”或“中间包括*,它后面不是/”
Top
2 楼pankun(剑神一笑 Console下面干革命)回复于 2006-05-03 14:44:26 得分 0 一个cpp文件会包括很多次/…../ 形式的注释。用”/*.*/”只能匹配出现一次的注释。比如有/ line1 / …/ line n */ 的字符串,只会被匹配到一次,因为首尾都符合匹配条件。
这个应该是看你是用什么正规表达式解析库的,不同的库有设置,比如是否匹配最多的可能.
Top
3 楼mmmcd(超超)回复于 2006-05-04 20:41:58 得分 20Lex中,可以这样写:”/*”([^*] | (*)[^*/])(*)“/” |
Top
4 楼CHOcean()回复于 2006-05-07 09:29:40 得分 0 多谢超超!
”/*”([^*] | (*)[^*/])(*)“/”果然管用. |
a = “aaa/coment1/bbb/comentcoment2/*/ccc”
re.sub(r”/*([^*] (*)[^*/])(*)**/”, “”, a)
‘aaabbbccc’
- 上一篇 一线声机和后备箱哪个更好看?
- 下一篇 Python源码剖析.