我正在尝试在Nodejs应用中使用正则表达式。我通常在Python中使用它,它似乎有some differences。
这是问题所在:
我有此字符串\newcommand{\hello}{@replace}
,并且仅当在第一个卷曲手镯中发现@replace
时,才想用第二个卷曲手镯中的REPLACED
替换\hello
。因此,预期结果是:\newcommand{\hello}{REPLACED}
我尝试:
r = new RegExp('\\newcommand{\\hello}{(.*?)}');
s = '\\newcommand{\\hello}{@replace}';
s.replace(r, 'REPLACED');
但是什么都不会取代...任何线索吗?
答案 0 :(得分:1)
r = new RegExp(/\\newcommand{\\hello}{@replace}/);
s = '\\newcommand{\\hello}{@replace}';
let a = s.replace(r, '\\newcommand{\\hello}{REPLACED}');
console.log(a)
输出为:"\newcommand{\hello}{REPLACED}"
答案 1 :(得分:0)
我不确定我是否正确理解了这个问题。这是您要找的吗?
function replaceWith(myReplacement) {
var original = "\\newcommand{\\hello}{@replace}";
var regex = "{\\hello}{@replace}";
return original.replace(regex, `{\\hello}{${myReplacement}}`)
};
console.log(replaceWith("World"));
答案 2 :(得分:0)
执行此操作完全不需要正则表达式。您可以在第一个参数上简单地使用字符串:
use strict;
use warnings;
use List::Util 'shuffle';
my $attempts = 1000000;
my $pairs = 10;
my @socks = (('R') x $pairs, ('L') x $pairs);
my $correct_pairings = 0;
for my $attempt (1..$attempts) {
my $picked_socks = join '', shuffle @socks;
++$correct_pairings if $picked_socks =~ /^(?:(.)\1){$pairs}/;
}
print "$correct_pairings correct pairings in $attempts attempts\n";