Regex 高级正则表达式-设置全局修饰符时仅匹配文件的第一次出现
在我的编辑器中,我尝试在许多文件上放置一个正则表达式,这样,如果它找到jquery美元函数Regex 高级正则表达式-设置全局修饰符时仅匹配文件的第一次出现,regex,regex-lookarounds,Regex,Regex Lookarounds,在我的编辑器中,我尝试在许多文件上放置一个正则表达式,这样,如果它找到jquery美元函数$,它就会使juqery函数加载const$=require('jquery') 基本上,如果我有这样的文件: $(document).ready(function () { $('.btn-toggle-achievement').on('click', function (e) { var button = e.target; var el = $(button)
$
,它就会使juqery函数加载const$=require('jquery')代码>
基本上,如果我有这样的文件:
$(document).ready(function () {
$('.btn-toggle-achievement').on('click', function (e) {
var button = e.target;
var el = $(button);
$.post('/achievements_ajax/toggle_achievement', {
status: el.data('enable'),
achievement_id: el.data('achievement-id')
});
});
});
我想编写一个正则表达式,用const$=require('jquery')替换第一次出现的$
\n
。我在编辑器中使用replace实用程序。最终的结果应该是这样的
const $ = require('jquery');
$(document).ready(function () {
$('.btn-toggle-achievement').on('click', function (e) {
var button = e.target;
var el = $(button);
$.post('/achievements_ajax/toggle_achievement', {
status: el.data('enable'),
achievement_id: el.data('achievement-id')
});
});
});
到目前为止,我得到的是:
但在这一刻,它取代了任何出现的$
。我只想替换第一个。我可以确保正则表达式只匹配第一次出现的正则表达式吗?也许我需要一个负回溯来检查$
之前是否已匹配?在正则表达式中,设置了全局标志,这意味着它将替换每次出现的情况。关闭全局标志,您将得到您想要的
编辑:如果无法关闭全局标志,请匹配从第一个$on开始的所有内容:
(\$(?:.|[\r\n\u2028\u2029])*)
在正则表达式中,设置了全局标志,这意味着它将替换所有事件。关闭全局标志,您将得到您想要的
编辑:如果无法关闭全局标志,请匹配从第一个$on开始的所有内容:
(\$(?:.|[\r\n\u2028\u2029])*)
试试这个正则表达式:
^([^$]*)(?=\$)
说明:
^
-断言字符串的开头
[^$]*
-匹配任何非$
字符的0+次出现次数。括号是组中的这一部分。稍后,此组中捕获的任何内容都将被此组的内容以及行const$=require('jquery')替换\n
如演示中所示
(?=\$)
-正向前瞻以验证迄今为止匹配的内容,后面跟着一个$
试试这个正则表达式:
^([^$]*)(?=\$)
说明:
^
-断言字符串的开头
[^$]*
-匹配任何非$
字符的0+次出现次数。括号是组中的这一部分。稍后,此组中捕获的任何内容都将被此组的内容以及行const$=require('jquery')替换\n
如演示中所示
(?=\$)
-正向前瞻以验证迄今为止匹配的内容,后面跟着一个$
写得好的问题。感谢您提供到目前为止所获得内容的链接。(const\s*\$\s*=\s*require\('jquery'\);\n |)(.*\$\(\$)
和const$=require('jquery'));\n$2
。请参阅:。它将用您想要的字符串替换每一次出现和每一次未出现。如果我将全局标志放在@ctwheels上,这是我的编辑器中的唯一选项,它将不起作用。问题写得很好。感谢您提供到目前为止所获得内容的链接。(const\s*\$\s*=\s*require\('jquery'\);\n\124;(.\$)(.\$)(.\\$)。)
和const$=require('jquery'));\n$2
。请参见:。它将用您想要的字符串替换每一次出现和每一次未出现。如果我在@ctwheels上放置全局标志,则该字符串无效,这是我的编辑器中的唯一选项。但我不能在我的编辑器的正则表达式实用程序中执行此操作。但我不能在我的编辑器的正则表达式实用程序中执行此操作。谢谢,解释得很好!谢谢,非常好躺!