在此字符串之間的所有底線(這不是我的代碼,只是樣品輸入)正則表達式 - 捕獲兩個字符串
var b_1 = goog.require('a_b_b');
console.log(b_1.b);
a_b_b
應該被重新命名爲a.b.b
,因此所有強調內部goog.require('...')
聲明應被重命名爲一個.
。
我想出了這個正則表達式:
/goog\.require\('(?:[^_]*(_)[^_]*)*'\)/g
說明:
goog\.require\(' literal
(?: non-capturing group
[^_]* match anything except underscore
(_) capture underscore
[^_]* match anything except underscore
) end of non-capturing group
* there can be more than one underscore in a goog.require statement
'\) literal
但這隻能捕獲最後一個下劃線。 如何在goog.require('...')
聲明中捕獲所有下劃線?
我不知道它是否有用,但我用javascript替換下劃線,所以看起來後面沒有(本地)支持。
要清楚:我只希望goog.require('...')
語句中的下劃線被替換,因此b_1
中的下劃線不應被替換。
爲什麼我們不能在這裏使用'str.replace(/ _/g,'。')'? –
@cᴏʟᴅsᴘᴇᴇᴅ這也會替換'b_1'中的'_',我只想要替換'goog.require('...')中的下劃線。 – user7353781