Flex正则表达式多行评论

时间:2014-02-18 03:52:08

标签: regex visual-studio-2008 bison lex flex-lexer

有人可以向我解释差异,我现在已经测试了2个多小时......

 This regex \"(.|\n)*\" gets everything inside " " (along with the " ").

 This regex "//".*$ gets a single line comment(c).

`But the regex \/\*(.|\n)*\*\/ doesn't get a multy line comment
相反它变得太多,我甚至不理解。有人可以向我解释一下这个区别吗?另外[^“]意味着除了”是否可以写[^ * /]或者它需要*和/作为没有连接的字符?顺便说一下我在VS2008上运行所有这些(使用flex)和野牛)。我发现在VS2008上不起作用的例子,所以如果有人知道一个非常好的网站,解释正则表达式与我分享它因为我觉得我迷失在迷宫中。谢谢你的时间!

1 个答案:

答案 0 :(得分:1)

尝试使用以下regEx来获取评论部分以及评论的开始和结束块:

b = /\/\*(.)*(\n)?(.)*\*\/g

例如

a = "some of my text/* hello this is comment\nthis comment is not good*/. Text cont."
b = /\/\*(.)*(\n)?(.)*\*\/g
a.replace(b, "")
[output ] : "some of my text. Text cont."

希望这会对你有所帮助。

这个表达式适用于JS。我认为在你的情况下你应该尝试

"\/\*((.)*(\n)?)*(.)*\*\/"