你好我正在写一个java程序来删除一个字符串中的所有注释conatins php源代码可以任何人给我正则表达式的php评论?请
答案 0 :(得分:3)
请看一下这个链接:http://ostermiller.org/findcomment.html
他到达了这个解决方案(/* ... */
评论):
sourcecode.replaceAll("/\\*(?:.|[\\n\\r])*?\\*/","");
对于// ...
和# ...
条评论,您应该可以执行类似
sourcecode.replaceAll("(//|#).*?[\\n\\r]");
请注意以下类型的情况:
someString = "An example comment: /* example */";
someString = "An example comment: // example";
someString = "An example comment: # example";
答案 1 :(得分:1)
这将非常棘手!
首先,您在PHP中有三种类型的评论:/* ... */
,以及//
和#
。
但是你需要排除那些属于字符串的部分,特别是因为//
可以在字符串中经常出现,作为转义的斜杠字符,并且字符串中的#
字符可以是完美的文本的合法部分。
为了解决这个问题,字符串可以是多行的,除了单引号和双引号之外,它们也可以使用Heredoc和Nowdoc语法编写(参见http://php.net/manual/en/language.types.string.php),这可能特别棘手。用正则表达式准确选出。另外,当然,您需要确保自己位于<?php ... ?>
标记内。
它可能已经完成了,但说实话,我会说要处理所有这些问题,使用语言解析器而不是正则表达式来尝试这样做会好得多。
答案 2 :(得分:1)
然而,如果您愿意使用PHP本身为您进行过滤,this question具有所有答案,并且它应该更加容易且更加健壮。如果您在与Java应用程序相同的计算机上安装了PHP,则可以使用Runtime.exec()
运行PHP并获取控制台输出,或者将PHP导出到文件并稍后将其导入程序。