我正在编写一个程序,我需要忽略传递的文件中的注释。 我在这个问题上阅读了关于Regex模式的内容。如果它在一行中定义,我可以忽略单行注释(// ...)和多行注释(/.../ )。 但是我很难忽视多行注释,如下所示:
>
/ * ........ .......... .... * /
我使用的单行
“//.*$”
和第二个,
“/ \ \ *。* \ \ * /”
某处我甚至读到了Reluctanat量词会有所帮助...尝试使用正则表达式和不情愿的量词的不同模式...没有快乐.. 有人可以帮我弄这个吗..?
由于
答案 0 :(得分:1)
我认为它适合你:
/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/
或单行和多行注释:
(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|(//.*)
答案 1 :(得分:1)
.
通常与\r
,\n
等新行字符不匹配。
但是,您可以使用DOT_ALL来更改此行为。这与(?s)
相同。
"(?s)/\\*.*\\*/"
"/\\*[.\r\n]*\\*/"
此更换应在处理单行注释之前完成。并且.
不应与新行匹配。
答案 2 :(得分:0)
感谢大家的建议..但是,我得到了一个确切的解决方案......模式 " /\*.+?\*/ 34(一个或多个);在删除多行注释时工作正常..
答案 3 :(得分:0)
您可以使用以下方法解决问题 “(αS)/ \ *。 \ /” “/ \ * [\ r \ n]的 \ /”