你好我正在寫一個Java程序來刪除所有評論從一個字符串conatins PHP源代碼可以任何一個給我正則表達式的PHP評論?請java的正則表達式爲php評論
回答
看一看這個鏈接: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";
這將是非常棘手!
首先,您有三種類型的PHP註釋:/* ... */
,還有//
和#
。
但是,您需要排除那些屬於字符串的部分,特別是因爲//
可能經常出現在字符串中,因爲字符串中的轉義斜槓字符和#
字符可能是文本的完全合法部分。
爲了解決這個問題,字符串可以是多行的,並且除了單引號和雙引號之外,還可以使用Heredoc和Nowdoc語法編寫它們(請參閱http://php.net/manual/en/language.types.string.php),這可能會非常難以精確地選出與正則表達式。另外,當然,你需要確保你在<?php ... ?>
標籤內。
它可能可以完成,但說實話,我會說所有這些處理,使用語言解析器比使用正則表達式來嘗試執行此操作要好得多。
像Spudley說的,你不能簡單地寫一個正則表達式來做到這一點。有太多的例外情況,比如字符串中的註釋式字符串,以及行式註釋通過關閉PHP標籤而提前終止。爲了保證正確性,你可能必須編寫一個完整的語言解析器。
但是,如果您願意使用PHP本身爲您進行篩選,this question具有所有的答案,並且它應該更容易和更強大。如果您將PHP安裝在與Java應用程序相同的機器上,則可以使用Runtime.exec()
運行PHP並獲取控制檯輸出,或者將PHP導出爲文件並稍後將其導入到程序中。
- 1. 評論正則表達式
- 2. 正則表達式匹配PHP評論
- 3. 正則表達式匹配的評論
- 4. 正則表達式的C#評論
- 5. 正則表達式不匹配評論
- 6. 正則表達式 - 匹配評論
- 7. 將Java正則表達式轉換爲PHP正則表達式
- 8. 將php正則表達式轉換爲java正則表達式
- 9. 如何評論PHP中正則表達式的* /部分
- 10. Java的正則表達式討論
- 11. 形式的Java正則表達式PHP正則表達式
- 12. PHP正則表達式來移除特定CSS評論
- 13. PHP-MySQLi替換爲正則表達式/正則表達式/正則表達式
- 14. 爲什麼這個評論正則表達式錯了?
- 15. PHP正則表達式到Java正則表達式
- 16. 正則表達式理論
- 17. 的Javascript正則表達式爲Java正則表達式
- 18. 將php正則表達式轉換爲android java正則表達式
- 19. 用於以編程方式刪除所有評論的Java正則表達式
- 20. 將JavaScript正則表達式轉換爲PHP正則表達式?
- 21. 將PHP正則表達式轉換爲VB.Net正則表達式
- 22. 如何使用正則表達式評估約束? (PHP,正則表達式)
- 23. 評論代碼的正則表達式的問題
- 24. 要移除評論的正則表達式
- 25. 從SQL語句中刪除評論的正則表達式
- 26. Checkstyle的正則表達式匹配缺少@Ignore評論
- 27. 正則表達式的JavaScript檢測評論
- 28. 如何評論包含正則表達式的塊
- 29. 節點正則表達式匹配文件中的評論
- 30. FLEX - 正則表達式 - AWK中的匹配評論
這將不修剪英鎊和雙斜線評論 – 2011-05-05 13:43:38
正確。它用於'/ * ... * /'註釋。更新了答案。 – aioobe 2011-05-05 13:44:15
PHP允許您使用#號開始評論。 – 2011-05-05 13:47:39