gpt4 book ai didi

javascript - 正则表达式 - 捕获两个字符串之间的所有下划线

转载 作者:行者123 更新时间:2023-11-28 14:49:37 26 4
gpt4 key购买 nike

在此字符串中(这不是我的代码,只是示例输入)

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 替换了下划线,因此( native )不支持后视。

需要明确的是:我只想替换 goog.require('...') 语句中的下划线,因此 b_1 中的下划线不应该被替换被替换。

最佳答案

您可以使用此正则表达式:

var result = str.replace(/goog\.require\('[^']+'\)/g, function (match) {
return match.replace(/_/g, '.');
});

这首先会查找与 goog.require('str') 形式匹配的所有匹配项,并将所有出现的 '_' 替换为 '.'.

关于javascript - 正则表达式 - 捕获两个字符串之间的所有下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45013441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com