1
我有形式的大約200個函數調用Java的正則表達式的嵌套函數調用
markers.add(packageDecl.getPosition(), "package.invalid", this.fullName);
這就需要與
markers.add(I18n.createMarker(packageDecl.getPosition(), "package.invalid", this.fullName));
^^^^^^^^^^^^^^^^^^ ^
更換它們可以具有的功能參數和參數的任意數可以是嵌套調用,如示例中所示。但是,;
總是以換行符結束。
我已經嘗試過此正則表達式:
markers\.add\((.*)$
,讓我脫光了markers.add(
部分並添加I18n.createMarker(
。但是,我不能在最後添加額外的右括號:); ->));
。
你應該看看了DOTALL模式在Java正則表達式的文檔。沒有必要像'(。| \ n)'這樣的黑客。 –
@AlanMoore我知道正則表達式的標誌,但我不認爲在評論中提到的正則表達式搜索/替換Clashsoft支持它們。我錯了嗎? – Aaron
這個問題被標記爲[tag:java],所以我認爲它是用於Java代碼的,他只用Eclipse進行測試。但無論如何,Eclipse本身使用ICU庫,它具有與Java風格(故意的設計選擇)幾乎完全相同的語法和語義。噢,'(。| \ n)'還有另一個問題'。還有其他幾行「。」不匹配的行分隔符,因此在技術上,您應該已經使用過。 '(|。[\ r \ n \ u0085 \ u2028 \ u2029])'。如果你正在走這條路。你不應該這樣做。 –